2009-12-02 91 views
0

我創建了一個簡單的JQuery腳本,它通過一個url數組循環並打開多個窗口。Javascript Window.open問題IE7/IE8

這是對廣大的平臺上工作的罰款。

然而,IE7和IE8在用戶機器上的瀏覽器只打開一個窗口。沒有JavaScript錯誤存在。

我有我的筆記本電腦相同的版本,它工作正常。

請可能有人闡明潛在因素任何光線?

受影響的計算機:XP SP3 - IE 7最終,Windows 7中的IE 8

任何幫助將不勝感激。

乾杯 保羅

+0

彈出式窗口攔截?內置或其他 – Greg 2009-12-02 10:14:34

+1

很難提供嚴肅的建議,根本看不到代碼 – 2009-12-02 10:17:05

+0

道歉,這裏是代碼片段: $(「form#linkSearch」)。submit(function(){ term =($(' #linkTerm'。)VAL());對於 (VAR i的$散列){ \t指數= i.replace(/鏈接/ IG, ''); \t如果(術語){ \t URL = $ linksHash [索引] .replace(/ XXX /克,術語); \t}否則{ \t URL = $( '#' + I).attr( 'href' 屬性); \t} window.open(URL,我+ term.replace(/ [^ a-zA-Z0-9] +/g,'_')); } return false; }); 用戶輸入一個搜索詞,我清理搜索詞剝離非字母數字字符並將其用作窗口名稱。 – Mindblip 2009-12-02 10:23:46

回答

1

對不起,我不能按照你的一行未格式化代碼。但下面確實在我提供包括Firefox 3.5,Opera 10的,三價鉻和Internet Explorer 6,7和8的所有瀏覽器的工作:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html lang="es"> 
<head><title></title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type="text/javascript"><!-- 
function openLinks(){ 
    var linkList = [ 
     "http://www.google.es", 
     "http://www.yahoo.com", 
     "http://www.bing.com", 
     "http://stackoverflow.com", 
     "http://serverfault.com/" 
    ]; 

    $(linkList).each(function(){ 
     window.open(this); 
    }); 
} 
//--></script> 
</head> 
<body> 

<input type="button" onclick="openLinks()" value="Open lots of links"> 

</body> 
</html> 

彈出窗口相關的典型錯誤包括:

  • 分配ID與Windows和重複使用相同的ID - >分配不同的ID(或根本沒有,如果沒必要)
  • 開幕未經請求的彈出窗口 - >讓用戶觸發動作
3

有可能是一個彈出窗口攔截器啓用

1

不知道,但你指定一個窗口的一個變量的每個新的參考?這會產生問題,但是如果你放置一個變量,它會在每次獲得新的引用,並且jquery循環內的東西工作正常。

+0

我已經更新了代碼,如下所示: myWin = window.open(url,i + term。取代(/ [^ A-ZA-Z0-9] + /克, '_')); – Mindblip 2009-12-02 10:44:51

+0

等待客戶回覆,這是你的意思嗎? – Mindblip 2009-12-02 10:45:26

+0

是的,這就是我的意思。 – Sarfraz 2009-12-02 11:23:12

2

如果我沒有記錯,從IE7 +的彈出窗口攔截器允許在JavaScript中每個用戶的互動只是一個新的窗口,然後阻止。