我在用户点击链接时加载页面。我想要在容器内加载。一切正常。
我想要做的是覆盖一些javascript变量(以防止在加载的对象中发生事情)。
我尝试过简单地使用相同的名称重新实例化变量,但无济于事。任何帮助赞赏!这甚至可能吗?当我重新实例化变量时,对象内部实际上没有发生任何事情。
function loadURL(x){
var url = $(x).attr('value'); // eg. http://example.com
$('.page-loading-space').html('<object data="'+url+'"/>', function(){
same_variable_name = null; // that gets loaded with the object
});
}
当我在例如加载页面时,正在调用我在不同域上运行的脚本。本地主机。
以下是一个例子:
我正在使用localhost进行开发,并且如上所述将http://stackoverflow.com
加载到object标记中 - 通过$('.page-loading-space').html('<object data="'+url+'"/>');
- 没有回调以简化。
我想清除在此加载对象中实例化的变量。因此,如果stackoverflow.com
加载例如:GoogleAnalyticsObject
- 它就是这样做的。我想简单地使该对象无效以阻止它执行任何卸载回调。
这就是代表我实现的脚本的全部内容 - 我知道糟糕的跨域加载等。
我想要做的就是在页面加载到我的对象后清除值,以便在卸载时停止回调。谢谢,对不起,如果我不清楚/或者仍然不清楚。
答案 0 :(得分:0)
这可以解决您的问题:
window.f = '5';
$(document).ready(function(){
var object = $('<object data="http://jsfiddle.net/"/>');
$(object).appendTo(document.body).ready(function(){
var doc = object.get(0).contentDocument;
var win = doc.parentWindow || doc.defaultView;
console.log(win, win.f);
});
});
http://jsfiddle.net/eithe/tYu4F/
基本上,正在发生的事情是,当您创建<object>
元素时,您需要为该{window
创建另一个document
和<object>
个对象{1}}。因此,<object>
内的所有变量都将绑定到window
(考虑<object>
,如<iframe>
)。要删除变量,您可以使用delete
运算符。
答案 1 :(得分:0)
即使在iframe / object中也无法访问跨域JavaScript变量。