2014-04-22 75 views
0

我试图为firefox的greasemonkey插件编写一个用户脚本,它应该改变某些链接的行为站点。如果脚本正在运行,用户应该能够通过在链接上移动鼠标指针来打开链接。如果一个新窗口打开,另一个以前打开的窗口应该关闭。 这不起作用,我没有丝毫的想法,为什么。Javascript:setAttribute(“onmouseover”,“... function ...”)不会做任何事情

var numberOfAnchors = document.getElementsByTagName("a").length; 
var window1; 

for(var i=0; i<numberOfAnchors; i++){ 
    document.getElementsByTagName("a")[i] 
     .setAttribute("onmouseover","followLink(this)"); 
} 

function followLink(x){ 
    closeOldWindow(); 
    window1 = window.open(document.documentURI + x.getAttribute("href")); 
} 

function closeOldWindow(){ 
    window1.close(); 
} 

回答

2

您试图关闭window1之前,你甚至打开一个窗口,做检查之前

function closeOldWindow(){ 
    if (window1) 
    window1.close(); 
} 
+1

这不会改变任何东西。我写了一个HTML页面来测试脚本,它起初工作,但只在该页面。然后我安装了greasemonkey并将其复制到用户脚本中,然后甚至没有在我的页面上工作。 (甚至没有Firefox的JavaScript环境) – matkin