我正在开发一个iOS应用,用于显示具有MRAID兼容性的横幅广告。我对此进行了研究,几乎没有样品可以使用。我已经成功地将mraid.js文件链接到我的HTMl代码中。我在这里面临的问题是广告加载后不久,我没有触发任何Statechange事件。这是我的示例HTML代码。我在同一文件夹中也有mraid.js文件。

在下面的代码中,我正在侦听StateChange事件。但是即使在广告加载后,也不会触发该事件。我是编码HTML / J的新手。有什么地方我错了吗?如果我在某个地方错了,谁能请我纠正。

谢谢,

<!DOCTYPE html>
<html>
    <body>
        <script type="text/javascript" src="mraid.js"> </script>
        <script>
            if (mraid.getState() != 'ready') {
                mraid.addEventListener("stateChange", function(state) {
                                       if (state == 'default') {
                                       alert ("State Changed");
                                       startAd();
                                       }
                                       });
            } else {
                startAd();
            }


            var startAd = function() {
                alert ("Start Ad");
                mraid.useCustomClose(true);
            }

            </script>


        <iframe src="http://files.bannersnack.com/iframe/embed.html?hash=bd1ksct1&bgcolor=%23000000&wmode=opaque&clickTag=http%3A%2F%2Fwww.somewebsite.com&t=1369101780" width="728" height="90" seamless="seamless" scrolling="no" frameborder="0" allowtransparency="true"></iframe>
    </body>
</html>

最佳答案

您可能正在经历一场失败的比赛。

可能未定义mraid,但这没关系。

此外,我建议检查状态===“正在加载”,而不是!=“就绪”或规格说明。

实际上,尽管事件已准备就绪,但“准备就绪”并不是官方状态。这很可能是您的问题。

09-13 00:55