[英]javascript popup issue In Internet Explorer !
我有問題在javascript中打開彈出窗口我有這個功能在IE6和IE7中打開我的彈出窗口:
function open_window(Location,w,h) //opens new window
{
var win = "width="+w+",height="+h+",menubar=no,location=no,resizable,scrollbars,top=500,left=500";
alert(win) ;
window.open(Location,'newWin',win).focus();
}
它正在工作。 我的意思是我的新窗口打開但發生錯誤。 錯誤消息是:
'window.open(...)'為null不是對象。
你想在這個頁面上計算運行腳本嗎?
然后我在onclick事件中有按鈕它會調用一個函數關閉當前窗口刷新開啟功能
function refreshParent(location)
{
window.opener.location.href = location ;
window.close();
}
它也給了我錯誤:window.opener.location為null或不是對象,但我確定我傳遞了正確的參數
我稱之為:
第二部分:
<input type="button" name="pay" value="test" onclick="refreshParent('index.php?module=payment&task=default')" >
第一部分:
<a onclick="javascript:open_window('?module=cart&task=add&id=<?=$res[xproductid]?>&popup=on','500' , '500')" style="cursor:pointer" id="addtocard"> <img src="../images/new_theme/buy_book.gif" width="123" border="0"/> </a>
這讓我很困惑。 請幫忙 ;)
當使用window.open打開的彈出窗口被彈出窗口阻止程序阻止時,這幾天是幾乎所有現代瀏覽器的一個特性,window.open()的返回值不是窗口對象,而是null。
為了避免這些問題,您需要在嘗試調用其上的任何方法之前測試window.open()返回的值。
下面是一段代碼,演示如何解決此問題:
function open_window(Location,w,h) //opens new window
{
var options = "width=" + w + ",height=" + h;
options += ",menubar=no,location=no,resizable,scrollbars,top=500,left=500";
var newwin = window.open(Location,'newWin',options);
if (newwin == null)
{
// The popup got blocked, notify the user
return false;
}
newwin.focus();
}
通常,彈出窗口應僅用作最后的手段或受控環境(公司內部網站等)。 彈出窗口阻止程序往往表現得非常不一致,並且在給定的瀏覽器中可能安裝了多個彈出窗口阻止程序,因此指示用戶如何允許給定網站的彈出窗口不一定是解決方案。 示例:IE7 + Google工具欄=兩個彈出窗口阻止程序。
如果我建議,也許你應該考慮使用這樣的東西: http : //jqueryui.com/demos/dialog/
優點很多:
如果仍然要求新打開的“窗口”包含外部URL,則可以在打開的對話框窗口中使用IFRAME。
希望這可以幫助,
利奧爾。
這是一種讓你的蛋糕和吃它的方法我沒有在所有的瀏覽器上測試它,但它應該真的有用
function open_window(url,target,w,h) { //opens new window
var parms = "width="+w+",height="+h+",menubar=no,location=no,resizable,scrollbars,top=500,left=500";
var win = window.open(url,target,parms);
if (win) {
win.focus();
return false; // cancel the onClick
}
return true; // make the link perform as normal
}
使用鏈接
<a href="?module=cart&task=add&id=<?=$res[xproductid]?>&popup=on"
target="newWin"
onclick="return open_window(this.href,this.target,500,500)"
id="addtocard"><img src="../images/new_theme/buy_book.gif" width="123" border="0"/></a>
它甚至可以為你節省愚蠢的光標,因為它是一個真正的鏈接,即使關閉JS也可以工作
對我來說效果很好。 在IE6 / 7/8中測試過。
當然我無法使用您的URL測試它,所以我用簡單的文件名替換它們。 我建議你也嘗試使用簡單的文件名,看看它是否也失敗了。
除此之外...
您不需要在onclick屬性值的開頭添加“javascript:”。
如果您使用與open_window相同的URL向鏈接添加href =“...”屬性也會很好。 然后它將成為一個真正的鏈接,你不必添加光標:指向它的指針。 例如:
<a href="?module=cart&task=add&id=<?=$res[xproductid]?>&popup=on"
onclick="open_window(this.href, '500' , '500'); return false;"> ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.