【问题标题】:problem to display dynamically a javascript google ad in an iframe using jquery使用 jquery 在 iframe 中动态显示 javascript google 广告的问题
【发布时间】:2010-08-13 02:10:09
【问题描述】:

我们尝试在动态添加的 iframe 中显示 Google 广告。在 iframe 中,“src”字段通常是一个 url,但我们希望使用 data:text/html 格式以便能够直接使用我们的广告代码。它适用于简单的 JavaScript 代码,例如 document.write('hello world'),但不适用于 google 广告代码。 我们在一个 html 文件中模拟这个:

<html>
    <head>
        <script src="http://code.jquery.com/jquery-latest.min.js"></script>
        <script type="text/javascript">

            function resizeFrame(f) {
                f.style.height = 60 + "px";
            }

            $(document).ready(function() {;

                var htmlCode = document.createElement("div"); 
                var head = document.getElementById('google_ad_468x60');
                var myFrame = document.createElement("iframe")
                    myFrame.name      = "childframe"
                    myFrame.id        = "childframe"

                    myFrame.src       = "data:text/html, " + "<script>" + "<!--\ngoogle_ad_client = \"pub-0123456789abcdef\";\ngoogle_alternate_color = \"FFFFFF\";\ngoogle_ad_width = 468;\ngoogle_ad_height = 60;\ngoogle_ad_format = \"468x60_as\";\ngoogle_ad_channel =\"0123456789\";\ngoogle_color_border = \"FFFFC6\";\ngoogle_color_bg = \"FFFFFF\";\ngoogle_color_link = \"000000\";\ngoogle_color_url = \"666666\";\ngoogle_color_text = \"333333\";\n//-->"+"<\/script>"+ "<script src = \"http://pagead2.googlesyndication.com/pagead/show_ads.js\">"+"<\/script>"

                    myFrame.width     = "468"
                    myFrame.scrolling = "no"
                    myFrame.setAttribute('marginheight', '0px')
                    myFrame.setAttribute('marginwidth' , '0px')
                    myFrame.setAttribute('frameborder' , '0'  )
                head.appendChild(myFrame)

            });



        </script>

    </head>

    <body onload="resizeFrame(document.getElementById('childframe'))"  bgcolor="#FFFF00">

        <div>
            <h1>Before Google ad</h1>
        </div>

        <div id="google_ad_468x60">
            <-- Here is display the the Google ad --!>
        </div>

        <div>
            <h1>After Google ad</h1>
        </div>

    </body>

</html>

我们在 Mozilla 中没有错误,但在 Chrome 中我们有此错误,在这两种情况下谷歌广告都不会显示:

Unsafe JavaScript attempt to access frame with URL oursitewiththetestfile.com from frame with URL  file:///home/lucas/Bureau/google_ad.html from frame with URL data:text/html, <script>google_comments</script> <script type="text/javascript" src="google_path.js"></script>. Domains, protocols and ports must match

【问题讨论】:

    标签: javascript jquery html iframe


    【解决方案1】:

    为了阻止黑客和病毒创建者,Chrome 不允许在与托管站点不同的域通信时使用 javascript 访问 iframe。

    您将被困在这种方法中,我不确定是否有解决方法。无论哪种方式,谷歌广告都应该直接放置在网站中,因为它使用内容来生成要在页面上显示的相关广告。如果您正在寻找一种展示您自己的广告的方式,它应该是动态完成的,用所选的代码语言编写,或者使用 adsense.google.com 上的广告创建者来展示您自己的广告,而不是公共服务广告。

    我个人觉得那样会简单得多。

    【讨论】:

    • 但 Firefox 也不显示广告。你认为是出于同样的原因吗? IE 呢?如果实在无法解决,我们会尝试其他方法。
    • 很可能是由于许多网站被黑客使用带有 Javascript 的 iframe 攻击。正如大卫所说,这也违反了条款和条件。无论你怎么看,iframe 仍然是一个框架。
    【解决方案2】:

    Google 不希望您将广告放在框架中,如果他们发现将禁止您...它在 terms of service 第 5 节...

    【讨论】:

    • 我们不把它放在一个框架中,而是一个 iframe 中,当你点击它时,会打开一个全新的页面,所以我认为谷歌不在乎。但很高兴再次阅读这些条款!
    猜你喜欢
    • 2013-08-11
    • 1970-01-01
    • 2014-12-19
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    相关资源
    最近更新 更多