好的,所以这是设置。我有一个可扩展的横幅,可以将较小的初始横幅的HTML交换到较大的展开横幅。 (在此测试中,它从160px宽扩展到600px宽。)我还有第二个HTML页面跳转到我导出的Tumult Hype(一个HTML 5动画程序)文件中的特定场景。
功能
“postToHype()”
使用postMessage传递给第二个HTML文档HypeExample,告诉它打开文档的第二个场景。因此从理论上讲,广告不仅会扩展并加载第二个HTML文档,而且还会跳转到该文档中的第二个场景。
这对我有用;当鼠标悬停在广告上时,它会触发“postToHype()”功能。当我使用也触发
的按钮进行测试时,这也有效“结合()”
功能。 “combine()”函数也会触发函数
“自动扩展()”
打开广告7秒钟,然后再次关闭。
我无法工作的是window.onload调用“combine();”功能。当window.onload触发“combine()”时,“autoExpand()”有效,但“postToHype()”没有。为什么按钮单击和onmouseover与我的“postToHype()”函数一起使用,但“window.onload”不起作用?
此处并未显示所有代码(例如链接的.js库),但我尝试包含最相关的位。任何和所有的想法都非常感谢。
<head>
<script type="text/javascript">
var exampleHTMLToPage = ExpandableBanners.banner("exampleHTMLToPage", "HypeExample.html", 600, 600);
exampleHTMLToPage.setCloseImage("images/close.png", 'right', 'bottom');
exampleHTMLToPage.animated = true;
exampleHTMLToPage.setDirection('down', 'right');
animated = true;
exampleHTMLToPage.expandOnClick = false;
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded",function(){documentReady=true;
});}
else if (!window.onload) window.onload = function(){documentReady=true;}
</script>
<script type="text/javascript">
function autoExpand() {
setTimeout("ExpandableBanners.openAd('exampleHTMLToPage')",0000);
setTimeout("ExpandableBanners.closeAd('exampleHTMLToPage')",7000);
}
</script>
<script> function combine() {
autoExpand();
postToHype();
} </script>
<script>
function postToHype(){
document.getElementById('exampleHTMLToPage_expanded_media').contentWindow.postMessage(['start', 'Scene2'], '*')
}
</script>
</head>
<body>
<div onmouseover="postToHype()" id="exampleHTMLToPage" style="width:150px; height:600px; background-color:rgb(30,167,221); position:relative; color:white; font-weight:bold">
<div style="display:inline-block;
width:140px; font-size:22px; margin-top:20px; margin-left:5px; margin-right:5px;">This is an HTML banner RK V7. Click to see exported HYPE interactive that loaded inside.</div>
</div>
<button onclick="combine();">Click me</button>
</body>
<script>
window.onload = function(){
combine();
};</script>
答案 0 :(得分:-1)
改变它:
<script type="text/javascript">
function autoExpand() {
setTimeout("ExpandableBanners.openAd('exampleHTMLToPage')",0000);
setTimeout("ExpandableBanners.closeAd('exampleHTMLToPage')",7000);
}
function postToHype(){
document.getElementById('exampleHTMLToPage_expanded_media').contentWindow.postMessage(['start', 'Scene2'], '*')
}
function combine() {
autoExpand();
postToHype();
}
</script>
在调用函数之前,需要定义函数postToHype()。最好只使用一个脚本标记并将所有代码写入其中。