热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

加载外部站点并更改其可视化-loadexternalsiteandchangeitsvisualization

Imtryingtocreateawebpageabletochangeasitevisualization(.cssorand.js)inorderto

I'm trying to create a web page able to change a site visualization (.css or / and .js) in order to recreate the same live change capability offred by Firebug for Firefox or the Inspector of Chrome.

我正在尝试创建一个能够更改网站可视化(.css或/和.js)的网页,以便重新创建Firebug for Firefox或Chrome Inspector所使用的相同实时更改功能。

Here an image to better explain my task:

这里有一张图片来更好地解释我的任务:

enter image description here

I have been able to visualize the other site inside my page using the iframe, but unfortunately it is not possible to change its visualization and access its elements due to the "same origin policy".

我已经能够使用iframe可视化我的页面内的其他站点,但遗憾的是,由于“相同的原始策略”,无法更改其可视化并访问其元素。

Is there a way to do this using the iframe or loading the external site inside another element?

有没有办法使用iframe或在另一个元素内加载外部网站?


Update:

Considering the answers the options should be:

考虑到答案,选项应该是:

  • create a php proxy page to load the target site and change visualization on it.
  • 创建一个php代理页面来加载目标站点并在其上更改可视化。

  • create a browser extention.
  • 创建浏览器扩展。

I've tried the first, even if it requires to install a web server (xampp), with a simple page calling the function file_get_contents('http://www.site.com');
The page is loaded but unfortunately missed some elements (like images) and it is only a static copy;
it is not possible to go further in the site navigation.

我已经尝试了第一个,即使它需要安装一个Web服务器(xampp),一个简单的页面调用函数file_get_contents('http://www.site.com');页面已加载,但遗憾的是错过了一些元素(如图像),它只是一个静态副本;它不可能在网站导航中更进一步。


Update 2:

Load the entire page via Javascript could be the better solution (I don't konw how) if it is possible to live change the code but what about the possibility to interact with this "page copy" and transfer the interaction to the original one?

通过Javascript加载整个页面可能是更好的解决方案(我不知道如何)如果可以实时更改代码,但是如何与这个“页面副本”交互并将交互转移到原始的?

Scheme:

enter image description here


Explanation:

I've noticed Firebug extention can select and live edit any page element, even if they belong to the iframe which loads an external domain page.
What I'm looking for is a way to act like Firebug, get an element and change its style.
I'm trying to load the site into the iframe beacuse I wanted to create a toolbar above it to select my "visualization styles"; for example a button to makes titles bigger and red.
Anyway I'm open to any other methods suggestions.

我注意到Firebug扩展可以选择并实时编辑任何页面元素,即使它们属于加载外部域页面的iframe。我正在寻找的是一种像Firebug一样的方式,获得一个元素并改变它的风格。我正在尝试将网站加载到iframe中,因为我想在它上面创建一个工具栏来选择我的“可视化样式”;例如,一个按钮,使标题更大和更红。无论如何,我对任何其他方法建议持开放态度。


Update 3:

I have found an extention for both FireFox and Chrome which is really close to my aim: "Stylish"
This add on allows to live change any site css proprerty and save it in order to reload them every time you'll visit the page.

我发现FireFox和Chrome的扩展非常接近我的目标:“时尚”这个添加允许更改任何网站css proprerty并保存它以便每次访问页面时重新加载它们。

Now my question is: How can I do the same creating a dedicated page to load and change visualization of a specific site?

现在我的问题是:我如何创建一个专用页面来加载和更改特定站点的可视化?


FINAL EDIT:

In order to continue this question with a more relevant arguments I decided to ask a new one:
create a php proxy page

为了用更相关的参数继续这个问题,我决定问一个新问题:创建一个php代理页面

3 个解决方案

#1


2  

No. Your solutions may be

不,您的解决方案可能是

  • to let your own site act as proxy so the same origin policy isn't triggered
  • 让您自己的网站充当代理,因此不会触发相同的原始政策

  • to build an extension, which will be browser dependent (Firefox or Chrome) and which will require authorization and installation
  • 构建一个扩展,它将取决于浏览器(Firefox或Chrome),并且需要授权和安装

#2


1  

I'm not sure if I understand what you want very well, but my feeling to ''trick'' this easier would probably to give very specific height and width to your first site (the iframe) and do a jQuery condition

我不确定我是否理解你想要的东西,但是我对''欺骗''这种更容易的感觉可能会给你的第一个网站(iframe)提供非常具体的高度和宽度并做一个jQuery条件

    If ($('body').width() == 500 && $('body').height() == 400 {
      $('body').addClass('isiFrame');
    }

Then, you only have to do your css .isiFrame .myCoolDivs {....} You might have to use it on a document ready also, but that could be one way to trick it and since you're not doing it on resize (exepect if somebody's having his screen at this exact width and height at start)

然后,你只需要做你的css .isiFrame .myCoolDivs {....}你可能也必须在文档就绪上使用它,但这可能是一种欺骗它的方法,因为你没有在调整大小时这样做(如果有人在开始时以这个确切的宽度和高度显示他的屏幕,请注意)

The safer way would probably to create a master session using PHP but I cannot give you an example since it've been to long and echo the body class if the master_session or variable is equal to true

更安全的方法可能是使用PHP创建一个主会话但我不能给你一个例子,因为它已经很长并且如果master_session或变量等于true则回显body类

Hope it helped!

希望它有所帮助!

#3


0  

If you try to fight Same_origin_policy and try to fight it I am sure you won't get much success their.

如果你试图打击Same_origin_policy并试图打击它,我相信你不会取得太大的成功。

Server Side

I would suggest you Handle this on server-side, grab the web-page and apply whatever styling and scripts you want, should be very easy!!

我建议你在服务器端处理这个,抓住网页并应用你想要的任何样式和脚本,应该很容易!

If you use Ruby on rails - Nokogiri gem can help you to parse html. And you can use standard library to 'get' a webpage.

如果你在rails上使用Ruby - Nokogiri gem可以帮助你解析html。您可以使用标准库来“获取”网页。

Client Side

If you want to do this on client side, you need to write some jquery/Javascript code, you can take following steps:

如果你想在客户端这样做,你需要编写一些jquery / Javascript代码,你可以采取以下步骤:

  1. Get the webpage you want to display.
  2. 获取您要显示的网页。

  3. Grab the element's which include js/css files, remove them and your own.
  4. 抓住包含js / css文件的元素,删除它们和你自己的文件。

  5. Display the page in new Iframe present in your page.
  6. 在页面中显示的新Iframe中显示页面。


推荐阅读
  • 本文旨在构建一个JavaScript函数,用于对用户输入的电子邮件地址和密码进行有效性验证。该函数将确保输入符合标准格式,并检查密码强度,以提升用户账户的安全性。通过集成正则表达式和条件判断语句,该方法能够有效防止常见的输入错误,同时提供即时反馈,改善用户体验。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本文探讨了如何利用 jQuery 的 JSONP 技术实现跨域调用外部 Web 服务。通过详细解析 JSONP 的工作原理及其在 jQuery 中的应用,本文提供了实用的代码示例和最佳实践,帮助开发者解决跨域请求中的常见问题。 ... [详细]
  • 在HTML5应用中,Accordion(手风琴,又称抽屉)效果因其独特的展开和折叠样式而广泛使用。本文探讨了三种不同的Accordion交互效果,通过层次结构优化信息展示和页面布局,提升用户体验。这些效果不仅增强了视觉效果,还提高了内容的可访问性和互动性。 ... [详细]
  • 本文深入探讨了 hCalendar 微格式在事件与时间、地点相关活动标记中的应用。作为微格式系列文章的第四篇,前文已分别介绍了 rel 属性用于定义链接关系、XFN 微格式增强链接的人际关系描述以及 hCard 微格式对个人和组织信息的描述。本次将重点解析 hCalendar 如何通过结构化数据标记,提高事件信息的可读性和互操作性。 ... [详细]
  • 本文详细介绍了 jQuery 的入门知识与实战应用,首先讲解了如何引入 jQuery 库及入口函数的使用方法,为初学者提供了清晰的操作指南。此外,还深入探讨了 jQuery 在实际项目中的多种应用场景,包括 DOM 操作、事件处理和 AJAX 请求等,帮助读者全面掌握 jQuery 的核心功能与技巧。 ... [详细]
  • 本文详细解析了JSONP(JSON with Padding)的跨域机制及其工作原理。JSONP是一种通过动态创建``标签来实现跨域请求的技术,其核心在于利用了浏览器对``标签的宽松同源策略。文章不仅介绍了JSONP的产生背景,还深入探讨了其具体实现过程,包括如何构造请求、服务器端如何响应以及客户端如何处理返回的数据。此外,还分析了JSONP的优势和局限性,帮助读者全面理解这一技术在现代Web开发中的应用。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • 探讨 JavaScript Scale 函数在 Angular2 中的比例应用与优化策略 ... [详细]
  • SoIhaveanappthathasarightsidebarwhosevisibilityistoggledviaabutton.Inthatsidebar ... [详细]
  • C++ 开发实战:实用技巧与经验分享
    C++ 开发实战:实用技巧与经验分享 ... [详细]
  • 为了满足专业设计师的需求,我需要一个工具,能够将使用JQuery构建的动态页面转换为纯静态HTML,而无需引用任何JavaScript文件。该工具应具备模拟当前页面的功能,以确保在开发和测试过程中保持页面的完整性和一致性。此外,该工具还应支持高效的页面调试和优化,以便设计师能够快速验证和调整页面布局及样式。 ... [详细]
  • jQuery Flot 数据可视化插件:高效绘制图表的专业工具
    jQuery Flot 是一款高效的数据可视化插件,专为绘制各种图表而设计。该工具支持丰富的图表类型和自定义选项,适用于多种应用场景。用户可以通过其官方网站获取示例代码和下载资源,以便快速上手和使用。 ... [详细]
  • 【前端开发】深入探讨 RequireJS 与性能优化策略
    随着前端技术的迅速发展,RequireJS虽然不再像以往那样吸引关注,但其在模块化加载方面的优势仍然值得深入探讨。本文将详细介绍RequireJS的基本概念及其作为模块加载工具的核心功能,并重点分析其性能优化策略,帮助开发者更好地理解和应用这一工具,提升前端项目的加载速度和整体性能。 ... [详细]
  • 我有一个页面,并且我想使用JavaScript来获取我在页面上单击的任何元素的相对xpath ... [详细]
author-avatar
禅茶一味2502922807_527
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有