2010-01-03 40 views
0

我使用iWebkit(花哨的CSS/JavaScript的製作界面爲iPhone/iPod touch的網站/ webapps中創建爲我校有點iPhone的web應用。如何從iWebkit自動觸發彈出對話框?

有一個叫彈出功能,模擬,你在你的iPhone上設置得到,當你將所有設置彈出窗口(即確認彈出)

如何使彈出出現AUTOMATICALLY時顯示一個HTML頁面 - 而不必點擊鏈接每個用戶指南的例子?(第22頁)。我嘗試過做一個nload在body標籤,甚至頭標籤,但它不起作用。

我不想使用JavaScript警報,因爲它不夠性感。

這是什麼代碼基於以下Doug的建議,目前的樣子:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<title>Popup Test</title> 

<script src="javascript/functions.js" type="text/javascript"></script> 

<script type="text/javascript"> 
    document.addEventListener('load', function(){ 
    window.setTimeout(function(){ 
    iWebkit.popup('popup1'); // Adjust this line to have the correct popup id 
    }, 5000); // This is in milliseconds. Keep the number as low as possible so it still works 
    }, false); 
</script> 

您確定要這麼做嗎? 停止服務器 取消

回答

1

那麼,首先你正在使用的庫(iWebkit)通過將整個onload事件放到自己身上,而不是使用合適的addEventListener函數將自己附加到onload函數來做一件「壞事」。

onload是把它放在適當的位置,但這裏是你將如何需要調用頁面加載彈出(在script src='/js/functions.js'行之後添加此)

<script type="text/javascript"> 
    window.addEventListener('load', function(){ 
    iWebkit.popup('foodpopup'); // Adjust this line to have the correct popup id 
    }, false); 
</script> 

如果不工作,它可能是因爲你的功能和他們的onload東西都在同一時間運行。然後,您可以試試這個:

<script type="text/javascript"> 
    window.addEventListener('load', function(){ 
    window.setTimeout(function(){ 
     iWebkit.popup('foodpopup'); // Adjust this line to have the correct popup id 
    }, 300); // This is in milliseconds. Keep the number as low as possible so it still works 
    }, false); 
</script> 
+0

嗨,道格。我嘗試了你的建議,但沒有奏效。我甚至嘗試將超時時間增加到5000 - 也沒有。 :( – Simon 2010-01-03 23:48:22

+0

@Simon,對不起!我需要'window.addEventListener'而不是'document ...'。我下載了iWebkit的最新副本並測試了我的第一個代碼塊(不需要超時),並且一旦我改變它到'窗口'。 – 2010-01-04 04:30:00

0

你有沒有試過onload事件?

+0

我確實嘗試了onload事件 - 我試着將它添加到body標籤,header標籤中。沒有工作。 – Simon 2010-01-03 11:36:39

0

您是否嘗試了JavaScript警報?在iPhone上,它具有很好的原生UI風格。

+0

我確實嘗試了javascript警報 - 在該對話框頂部的http://地址看起來不夠性感。有沒有辦法刪除它? – Simon 2010-01-03 11:35:47

0

嘗試這種::

<script type="text/javascript"> 
window.onload = function() { 
      document.addEventListener('load', function(){ 
    window.setTimeout(function(){ 
    iWebkit.popup('popup1'); // Adjust this line to have the correct popup id 
    }, 100); // This is in milliseconds. Keep the number as low as possible so it still works 
    }, false);  
      } 
</script>