无法使用nsILocalFile在IE中打开链接

时间:2013-12-11 21:53:33

标签: javascript html internet-explorer firefox

此网页是为firefox构建的,但它必须显示一个要在IE中打开的链接。所以我试图使用我在net上找到的代码。但它不起作用。我错过了什么?

javascript代码:

<script type="text/javascript">
$(document).ready(function(){
    function myFunction()
    {
        alert("opening now....");
        var localFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
        var process = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
        var url = content.document.location.href;
        var args = ["-new-tab", url];
        localFile.initWithPath("C:\\Program Files \(x86\)\\Internet Explorer\\iexplore.exe");
        process.init(localFile);
        process.run(false, args, args.length);
    }
});

HTML代码:

<p>Click the link top open in IE</p>
<a href="http://www.google.com/" onclick="myFunction()">open in IE</a>

当我点击链接时,会打开google页面:在同一个窗口中,在同一个borser中,在同一个tab.Pl建议中。

谢谢。

1 个答案:

答案 0 :(得分:0)

myFunction未在全局范围内定义。将它添加到dcoument ready回调可以保证这一点。

您可以将myFunction移到文档就绪回调之外。但是:

在这种情况下,我会使用jquery附加一个单击处理程序,如下所示

$(function() {
    $("a").click(function() {
        // do stuff
    });
})

注意,这会选择所有锚点并应用相同的事件处理程序。理想情况下,您将使用选择器。

$("#myGoogleLink").click(function() {

})

将id myGoogleLink添加到您的html锚点