我正在通过对象标签添加一个 html 文件。围绕对象标签的 div 被隐藏(显示:无)。
我遇到的问题是我在 html 对象的 body 标记上放置了一个 onpageshow 事件,但它在浏览器中的功能不同。
一旦 html 在对象中加载,Firefox 似乎就会播放该功能
Webkit (Safari/Chrome) 仅在我取消隐藏 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 显示并且对象已经加载时运行。