【问题标题】:Can't get $(window).load() to work on a page loaded into a div无法让 $(window).load() 在加载到 div 中的页面上工作
【发布时间】:2012-12-10 02:45:57
【问题描述】:

原谅我,我是新手。

我有一组 .html 文件,根据选择的文件,我将其加载到页面上的 div 中,有点像 iframe。我可以让这一切正常工作,但我的问题是窗口加载事件。我可以让 onload 在主页上工作,但是加载到主页上的 div 中的页面上包含的 onload 事件不起作用,无论是我将它写入 .html 文件还是从外部文件调用它。 $(document).ready 有效,但我试图确保在其他所有内容之后加载 javascript。

基本上我不知道如何让加载到 div 的页面上的窗口加载工作。

任何帮助将不胜感激。

编辑:这会将外部页面之一加载到主页面中:

$('div#socket').load('pages/' + thisTab + '.html');

其中 thisTab 是其中一个文件的名称,也是所选选项卡的名称。

类似这样的内容将位于已加载页面之一的底部:

<script type="text/javascript">
$(document).ready(function(){
alert('1');
});

$(window).load(function(){
alert('2');
});
$(window).bind("load", function() {
   alert('3');
});
</script>

我只收到要提醒的“1”。

【问题讨论】:

  • 你不应该在加载的页面中使用&lt;script&gt;标签,它只会让你感到困惑。从主页运行脚本
  • 其他选项是将“my_load”之类的事件绑定到加载页面的元素之一,在回调中触发该事件
  • “基本上我不知道如何让加载到 div 的页面上的窗口加载工作。” - 你没有加载 页面 i> 进入 div 本身,至少在嵌入具有自己的窗口和自己的窗口加载事件的独立页面的意义上不是。您正在向 current 页面上的 div 添加元素/文本,该页面的 window 加载事件已经发生。

标签: javascript jquery html load onload


【解决方案1】:

如果我理解正确,您正在寻找在将某些内容加载到主页(使用 ajax)后执行某些操作的选项。您可以使用ajax加载方法的回调功能。

$("#DivInsideMainPage").load("remotepage.html",function(){
   alert("This will execute only after loading the partial content") 
   //Execute the fancy code you want here    
});

【讨论】:

  • 这很简单。谢谢你。我没有指定的是我需要运行的代码对于每个页面都是不同的。最初我使用相同的变量和 $.getScript 来加载 javascript,但我注意到延迟会导致一些弹出式故障,或者任何你称之为的故障。如果我可以投票给你们两个,我会的。
【解决方案2】:

在加载的页面演示中包含脚本的方法:

在加载页面中:

<script id="loader_script" type="text/javascript">
$(document).ready(function(){
  alert('1');
});

$('loader_script').one('my_load',function(){
  alert('2');
});
</script>

在主脚本中:

var innerpage=$('div#socket');
innerpage.load('pages/' + thisTab + '.html',function(){
     innerpage.find('#loader_script').trigger('my_load');
});

【讨论】:

  • 这更接近于我试图用我复杂的设置来做的事情。这段代码的某些部分不起作用,但我将所有想要加载的内容都粘贴到了一个函数中,并将该函数粘贴在加载页面的底部,并使用主页上的回调来加载它。
猜你喜欢
  • 1970-01-01
  • 2015-04-14
  • 1970-01-01
  • 2012-12-29
  • 1970-01-01
  • 1970-01-01
  • 2019-07-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多