2012-12-10 49 views
0

我正在通過對象標記添加html文件。圍繞對象標籤的div是隱藏的(display:none)。onpageshow只能在webkit中正常運行(僅在屏幕上可見時才能運行)

我遇到的問題是,我已經把一個onpageshow事件放在html對象的body標籤上,但它在不同的瀏覽器中運行不同。

  • 火狐似乎只要HTML是對象中加載播放功能

  • 的Webkit(Safari /鉻)發揮它,只有當我取消隱藏在div(這是我想要什麼)

  • Opera/IE10根本不播放該功能。

是否有另一種方式讓功能只有在屏幕上可見時才能運行?

這是演示。我正在嘗試做什麼。

主窗口代碼。

<script type="text/javascript"> 
    function runthis() 
    { 
     if (document.getElementById("wrapper").style.display == "none") 
     { 

      document.getElementById("wrapper").style.display = "block"; 
      document.getElementById("hide").innerHTML = 'Div showing'; 

     } 
     else 
     { 
      document.getElementById("wrapper").style.display = "none"; 
      document.getElementById("hide").innerHTML = 'Div hidden'; 
     }   
    } 

    function removeObject() 
    { 
     if(document.getElementById("wrapper").innerHTML == '') 
     { 
      document.getElementById("wrapper").innerHTML = '<object id="test_object" name="name" data="frame.html" onshow="callme();"></object>'; 
      document.getElementById("add").innerHTML = 'Object added'; 
     } 
     else 
     {   
      document.getElementById("wrapper").innerHTML = ''; 
      document.getElementById("add").innerHTML = 'Object removed'; 
     } 
    } 
</script> 
<body> 
    <div id="wrapper" style="display:none"></div> 
    <div> 
     <button type="button" onclick="runthis();">Show/Hide</button> 
     <button type="button" onclick="removeObject();">Add/Remove</button> 
     <div id="status"><span>Status: </span><span id="hide">Div hidden</span> | <span id="add">Object removed</span></div> 
    </div> 
</body> 

代碼包含對象

<script type="text/javascript"> 
    function callme() 
    { 
     alert("running"); 
    } 
</script> 
</head> 

<body onpageshow="callme();"> 
</body> 

所以基本上警報應該運行僅在DIV中展現的對象已經加載。

+1

請包括代碼,它使問題更容易回答。 –

+0

當然,我已經將它包含在原始文章中。我希望這是有道理的。 – Jason

回答

0

用不同的路線,用postMessage代替。

相關問題