firefox在window.open时没有触发$(document).ready(function()

时间:2014-04-25 12:50:29

标签: javascript jquery html firefox window.open

我正在尝试使用window.open()和$(document).ready(function(){...})动态创建一个新窗口;我让它在Chrome和Internet Explorer上运行,但是firefox并没有在jQuery代码上徘徊。请参阅以下代码:

index.html代码:

<html>
<head>  
</head>
<body>
<a href="javascript:void(0);" onclick = "showDetails('name', 'name2');">Link</a>

<script type="text/javascript">
    function showDetails(name, timeStamp)
    {
        var w = window.open("", timeStamp); 

        var s = w.document.createElement("script");
        s.type = "text/javascript";
        s.src = "var eventArray = [];";
        w.document.body.appendChild(s);

        var s = w.document.createElement("script");
        s.type = "text/javascript";
        s.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js";
        w.document.body.appendChild(s);

        var s = w.document.createElement("script");
        s.type = "text/javascript";
        s.src = "test.js";
        w.document.body.appendChild(s);

        w.document.title = name;
        w.document.close();
        return false;
    }
</script>
</body>

test.js代码:

alert("executing js file");
$(document).ready( function() 
{
alert("document ready fired");
});

第一个警告“正在执行js文件”正在执行,但没有第二个“文件已准备好被解雇”。

知道如何在firefox上使用它?

注意:

  • w.document.close();并返回false;在this post后添加,但仍无法正常工作......
  • jquery正确加载

非常感谢你

2 个答案:

答案 0 :(得分:0)

我内心的感觉说:

s.src = "jquery1.10.2.js";

应该是:

s.src = "jquery-1.10.2.js";

或任何指向jquery的有效网址。

答案 1 :(得分:0)

为什么你总是使用相同的变量名?你可以尝试一下:

<script type="text/javascript">
    function showDetails(name, timeStamp) {
    var w = window.open("", timeStamp); 

    var s1 = w.document.createElement("script");
    s1.type = "text/javascript";
    s1.src = "var eventArray = [];";
    w.document.body.appendChild(s1);

    var s2 = w.document.createElement("script");
    s2.type = "text/javascript";
    s2.src = "jquery1.10.2.js";
    w.document.body.appendChild(s2);

    var s3 = w.document.createElement("script");
    s3.type = "text/javascript";
    s3.src = "test.js";
    w.document.body.appendChild(s3);

    w.document.title = name;
    w.document.close();
    return false;
    }
</script>