页面调用标签页时Document.ready脚本不起作用

问题描述:

我有几个页面被调用到ajax选项卡区域。被调用的页面上有javascript,但是当加载到选项卡上时,document.ready函数将不会为每个页面加载。相反,我不得不在页面上放一个按钮来手动加载函数。 Iv试图将document.ready函数放在被调用的页面和调用它的页面上,但它仍然不会运行。有没有其他方式可以使用,而不是有按钮?我不想按钮显示我的网页上有被点击它看起来好之前=(页面调用标签页时Document.ready脚本不起作用

继承人调用的页面的代码:

onclick="createNewTab('dhtmlgoodies_tabView1','Remote Access','','RemoteAccess.html',true);return false">Remote Access 

所有的JavaScript文件连接到主页。

一个按钮位于远程访问网页:

input type='button' value='Load.' onclick='loadlightbox()' 

的loadlightbox功能是conected主页面的JavaScript文件中:

loadlightbox = (function() { 
    $('#gallery a').lightBox({fixedNavigation:true}); 
}); 
+0

你能发表你的代码样本吗?另外,你使用的JavaScript框架,或者是这个普通的JavaScript? – 2011-02-24 19:17:26

+0

我的一些代码目前在这里:http://tonismicrosoftsurface.comlu.com/然而,我不知道为什么要通过它来谈论它。不知道它是我的电脑还是那个网站。我不记得如何最新这一个,但你可以尝试它,如果它的工作 - PS你需要打开它在Firefox中它完全改变任何其他浏览器 – Toni 2011-02-24 19:44:15

+0

@Chris我可以通过电子邮件发送一个压缩版本关闭我的电脑if你给我你的地址 – Toni 2011-02-24 19:45:48

当您使用JavaScript将内容加载到页面中时,没有document.ready事件被触发。大多数库只是坚持使用innerHTML返回的内容。大多数库只是从responseText中提取JavaScript代码并通过eval()运行它。

您可能想要忘记整个document.ready,并在末尾粘贴代码块。

+0

只有在代码块结束时才会有潜在的后果吗?就像我们使用document.ready的相同类型的原因,而不是仅仅在正常页面的末尾粘贴javascript,或者在您追加到DOM的情况下可以这样做(因此主机页面已经完全加载已经)? – MichaC 2011-02-24 19:28:07

+0

你必须原谅我对这一切都是新的。即时通讯我试图做的是加载页面到主页上的标签(所有其他页面被调用到此页面上的标签)被调用的页面有像jQuery的灯箱或jQuery数据表的东西,但为了这些工作即时通讯把这些页面上的按钮手动加载代码。所以你说我只需要将这些代码移动到页面底部即将调用,并且已经将document.ready添加到它了? – Toni 2011-02-24 19:38:27

document.ready函数不会触发,因为页面(文档)已经加载。远程页面作为内容而不是文档加载。

由于您使用的是jQuery,您应该利用.load function的优势,并且您应该采取unobtrusive approach将onclick附加到您的链接。这可以让你的JS和代码分开。

//Using Jquery load 
$("#id_of_link").click(function(e){ 
    e.preventDefault(); 
    $('#dhtmlgoodies_tabView1').load("RemoteAccess.html", 
    function(){ 
      //callback code here 
     }) 
}) 
+0

好吧,我已经把: – Toni 2011-02-24 21:55:13