2010-01-15 64 views
1

我有這個在我的網頁body標籤上面 -的jQuery - 觸發彈出瓦特/點擊

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#button').popupWindow({windowURL:'http://something',centerBrowser:1,width:400,height:300}); 
    }); 
</script> 

有沒有辦法讓這個彈出發生,而用戶實際點擊一個按鈕 - 編程w /代碼插入頁面中的頁面加載與PHP的中間?

回答

2

接下來添加以下內容。

$("#button").trigger("click"); 

或者把它全部上劃線:

$('#button').popupWindow({...options...}).trigger("click"); 

對於它的價值,你可以從一個非繪製元素調用此:

$("<div></div>").popupWindow({..options..}).click(); 
1

我認爲出於安全原因,許多瀏覽器在沒有某種用戶操作的情況下不會打開彈出窗口。

0

popupWindow是硬編碼與鏈接一起工作,只響應「點擊」事件。也就是說,如果你希望彈出窗口出現在頁面加載中,你可以嘗試從這裏編輯jquery.popupWindow的第6行;

$(this).click(function(){ 

to this;

$(this).ready(function(){ 

給你的body元素添加一個id;

<body id="popuptrigger"> 

並調用插件;

$('body#popuptrigger').popupWindow({ ... }); 

這是未經測試的,但即使它工作,它也不是一個非常優雅的解決方案。我建議四處尋找一個彈出式插件,讓你更靈活。我使用jqModal加載內部url請求的彈出窗體,並可以通過推薦它。你的里程數不盡相同,所以做一個谷歌搜索「jquery模態」,並檢查出一些替代品。

0

我建議使用jQuery UI Dialog。這樣你就不用擔心不同的瀏覽器如何處理不同的彈出窗口。

0

如前所述他人,一些瀏覽器(特別是Microsoft Internet Explorer)會拒絕打開JavaScript彈出窗口,除非它是由於用戶交互而觸發的。您可以輕鬆地僞造這個帶着幾分的jQuery:

// Create a 'fake' a tag, this will never be added to DOM. 
$('<a href="#" />') 

    // Register a click handler which will open a new popup window. 
    .click(function() { 
     window.open(url, name, options); 
    }) 

    // Simulate the click in jQuery - this will open the popup window. 
    .click(); 
0

我不能接受的解決方案發表意見,所以我就寄這在這裏 - 關於喬納森Sampsons最後的命題(這是很聰明) :在最新的Firefox上& Chrome觸發點擊事件的元素必須可見。因此,您無法真正生成未呈現的元素。另外,如果您使用的是網頁中的元素,只需選擇一個沒有定義任何其他點擊事件的應用程序 - 否則所有其他點擊事件都會觸發,這可能不是所需的結果。