javascript - 通过 JavaScript 和对象数据加载页面 - 如何清除加载的变量?

标签 javascript jquery ajax

当用户单击链接时,我正在加载页面。我希望将其加载到容器中。这一切都运行良好。

我想要做的是覆盖一些 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> 时发生的事情元素,您正在创建另一个 windowdocument对象<object> 。因此,<object> 中的所有变量将被绑定(bind)到window (想想 <object> 就像 <iframe> )。要删除变量,您可以使用 delete运算符。

关于javascript - 通过 JavaScript 和对象数据加载页面 - 如何清除加载的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24756765/

相关文章:

ajax - 如何在不重新加载页面的情况下将任意 JSON 发送到 node.js?

javascript - Rails 无法将 AJAX 数据发送到 Controller

PHP AJAX 文件 uploader

javascript - 如何转换 JSON 对象冒号(:) to equalto (=)

javascript - jQuery 延迟的怪异

javascript - Typescript 和 webstorm,缺少 --module 标志

Javascript:更改 <link rel ="stylesheet"> 媒体属性

php - 单页网站的后退按钮

javascript - javascript中的正则表达式获取以特定字符串开头的数组的所有字段

javascript - iframe 高度 100% 不起作用