当用户单击链接时,我正在加载页面。我希望将其加载到容器中。这一切都运行良好。
我想要做的是覆盖一些 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
});
}
<小时/>
信息
当我加载页面时,我在不同域上运行的脚本被调用。本地主机。
这是一个例子:
我正在本地主机上开发,我加载 http://stackoverflow.com
如上所述进入对象标签 - 通过 $('.page-loading-space').html('<object data="'+url+'"/>');
- 为了简单起见,没有回调。
我想清除在此加载对象中实例化的变量。所以,如果stackoverflow.com
负载例如:GoogleAnalyticsObject
- 确实如此。我想简单地取消该对象以阻止它执行任何卸载回调。
这都是代表我实现的脚本 - 我知道跨域加载不好等。
我想要做的就是在页面加载到我的对象中后清除该值,以阻止卸载时发生回调。谢谢,如果我不清楚/或仍然不清楚,抱歉。
最佳答案
这应该可以解决您的问题:
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>
。因此,<object>
中的所有变量将被绑定(bind)到window
(想想 <object>
就像 <iframe>
)。要删除变量,您可以使用 delete
运算符。
关于javascript - 通过 JavaScript 和对象数据加载页面 - 如何清除加载的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24756765/