我以编程方式在网页中设置 iframe 的 URL。
我必须知道此 URL 更改会触发哪些 http 请求(CSS、脚本、图像等加载的 URL)。
我拦截了 XMLHttpRequest,但这个对象从未被调用过......
如何拦截这些http请求?
是否有另一种方法来“加载” iframe 并获取所有触发的 URL 请求?
这是我的代码:
(function(xhr){
var pt = xhr.prototype;
pt._open = pt.open;
pt.open = function(){
console.log('Open called...');
this._open.apply(this, arguments);
})(XMLHttpRequest);
...
$('#iframe').attr('src', 'http://www.stackoverflow.com');
An <iframe />
有不同的window
到父窗口,因此,当您重写时XMLHttpRequest
,您将覆盖父窗口中的窗口,not中的那个<iframe />
window.
不幸的是,同源策略阻止您访问window
of the <iframe />
,所以对此您无能为力。
即使 SOP 在这里没有发挥作用,而您could拦截 AJAX 请求,您将无法拦截资产请求(CSS、JS、图像)。
最好的选择是在服务器上使用代理,并通过那里路由 iframe 请求;通过代理重写所有资产 URL,而不是直接访问(但即使如此,您也无法跟踪边缘情况,例如包括其他资产的 JavaScript 等)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)