javascript - 有没有办法减少使用 Javascript 下载资源(图像/css 和 js 文件)?

标签 javascript firefox firefox-addon dom-events

我的本​​地主机上有一个 html 页面 - get_description.html .

下面的片段是代码的一部分:

<input type="text" id="url"/>
<button id="get_description_button">Get description</button>
<iframe id="description_container" src="#"/>

单击按钮时 src iframe 的设置为在文本框中输入的 url。以这种方式获取的页面非常大,有很多链接文件。我对该页面感兴趣的是 <div id="description"> 中包含的一段文本。元素。

有没有办法减少加载到 iframe 的页面中链接的资源的下载?

我不想使用 curl,因为数据仅供登录用户使用,而且使用 curl 获取内容的步骤太复杂。 iframe 很简单,因为我在一个盒子上使用它,它发送正确的 cookie 来识别来自登录用户的请求,但问题是获取近 1 MB 的数据来保留 1 KB 的数据是非常浪费的并扔掉其余的。

编辑

如果建议的方法只适用于 Firefox,那很好,所以我添加了 Firefox 标签。此外,答案实际上可能来自 Firefox 附加组件技术领域,因此我也添加了该标签。

问题不是我找不到我要找的东西,而是问题很简单 iframe方法很浪费。

我知道 Firefox 确实允许只加载页面的文本。如果你打开一个页面并按 Ctrl+U 你会被带到“查看页面源代码”窗口,如果你点击一个链接,这些链接将正常运行并且可以点击在源代码 View 中,新页面的源代码被加载到查看源代码窗口中,没有下载链接的资源,这正是我想要得到的。但我不知道如何访问此行为。

另一个例子是 Adblock 插件。它以某种方式在加载元素之前将其杀死。使用纯 Javascript 这是不可能的。因为它只是触发得太晚,无法及时干预。

最佳答案

Same Origin Policy禁止任何网页访问不同域中任何其他网页的内容,因此基本上您不能这样做

但是,对于某些浏览器,似乎允许访问网页内容如果您尝试从本地网页访问它,这似乎是您的情况。

Safari、IE 6/7/8 是允许本地网页通过 XMLHttpRequest 执行此操作的浏览器(来源:Google Browser Security Handbook),因此您可能希望选择使用其中一种浏览器来执行您需要的操作(注意这些浏览器的 future 版本可能不再允许这样做)。

这个解决方案的一部分我只看到两种可能性:

  • 如果您需要从获取内容的网页由您以某种方式控制,您可以创建一个更简单的界面让其他网页获取您需要的内容(例如允许JSONP请求)。
  • 如果您需要从获取内容的网页不受您控制,我看到的唯一解决方案是直接从服务器登录获取内容服务器端(我知道您不会想这样做,但如果我之前提到的不可行,我看不出任何其他可能性)

希望对您有所帮助。

关于javascript - 有没有办法减少使用 Javascript 下载资源(图像/css 和 js 文件)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3232668/

相关文章:

java - 使用或不使用 docker 进行 Selenium 测试

javascript - SVG Chrome FireFox 区别使用 defs 元素,图形之间的关系

python - 如何使用 Python 和 Selenium 将击键发送到 Firefox 来保存网页图像

javascript - 了解 ConsumerRollupEvent

javascript - 在 firefox 附加面板中显示远程图像

javascript - C++ 库与 Ionic 框架的集成

javascript - ReactJS:如何将组件附加到React中的App组件

javascript - Socket.io 发射两次火焰

javascript - 如何合并对象内的对象

javascript - Firefox 扩展如何最好地避免污染全局命名空间?