如何在我的网页中加载外部网页并隐藏一些内容(避免跨站点问题)
How to Load an external web page inside my one and hide some content (avoiding cross site problems)
我需要在我的 Web 应用程序中合并一些来自我无法控制的外部动态网页的内容。
然后我需要过滤此页面的某些内容或将其隐藏以仅显示我感兴趣的相关部分。
我还需要外部页面上的脚本在没有跨站点保护的情况下仍在加载内容的源站点上运行。
这一切都可能吗?我该怎么做?有代码示例吗?
我想这可以在客户端用 JS 来实现。
我在后台工作,这些主题对我来说很无关紧要,请不要怪我。
不,不可能。
浏览器same-origin policy旨在防止恶意网站作恶。
同源策略限制JavaScript网络访问以防止邪恶。
同源策略也限制脚本API访问防止作恶.
来自文档:
JavaScript APIs like iframe.contentWindow, window.parent, window.open, and window.opener allow documents to directly reference each other. When two documents do not have the same origin, these references provide very limited access to Window and Location objects.
To communicate between documents from different origins, use window.postMessage.
— MDN Web Security Reference - Cross-origin script API access
一个不能使用 <iframe>
elements as a way to "avoid cross site problems". The Same Origin Policy 是为了保护用户免受恶意网页的侵害。
我需要在我的 Web 应用程序中合并一些来自我无法控制的外部动态网页的内容。
然后我需要过滤此页面的某些内容或将其隐藏以仅显示我感兴趣的相关部分。
我还需要外部页面上的脚本在没有跨站点保护的情况下仍在加载内容的源站点上运行。
这一切都可能吗?我该怎么做?有代码示例吗?
我想这可以在客户端用 JS 来实现。 我在后台工作,这些主题对我来说很无关紧要,请不要怪我。
不,不可能。
浏览器same-origin policy旨在防止恶意网站作恶。
同源策略限制JavaScript网络访问以防止邪恶。
同源策略也限制脚本API访问防止作恶.
来自文档:
JavaScript APIs like iframe.contentWindow, window.parent, window.open, and window.opener allow documents to directly reference each other. When two documents do not have the same origin, these references provide very limited access to Window and Location objects.
To communicate between documents from different origins, use window.postMessage.
— MDN Web Security Reference - Cross-origin script API access
一个不能使用 <iframe>
elements as a way to "avoid cross site problems". The Same Origin Policy 是为了保护用户免受恶意网页的侵害。