проблема для динамического отображения рекламы Google JavaScript в iframe с помощью jquery - PullRequest
0 голосов
/ 13 августа 2010

Мы стараемся отображать рекламу Google в фрейме, который добавляем динамически. В iframe поле «src» обычно является URL-адресом, но мы хотим использовать формат data: text / html, чтобы иметь возможность напрямую использовать наш рекламный код. Он работает для простого кода JavaScript, такого как document.write ('hello world') <\ script>, но не с рекламным кодом 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 у нас есть эта ошибка, в обоих случаях объявление Google не отображается:

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

Ответы [ 2 ]

1 голос
/ 13 августа 2010

В намерении Chrome держать хакеров и создателей вирусов подальше, они не разрешают доступ к iframe с использованием javascript, когда он взаимодействует с другим доменом, отличным от сайта, на котором он размещен.

Вы будете застревать в этом методе, и я не уверен, что есть обходной путь. В любом случае, объявления Google должны размещаться непосредственно на веб-сайте, поскольку он использует контент для создания релевантной рекламы, которая будет отображаться на странице. Если вы ищете способ показа своих рекламных объявлений, это нужно сделать динамически, написав на выбранном языке кода, или использовать создатель рекламы на adsense.google.com для показа ваших собственных объявлений вместо объявлений для общественных услуг.

Лично я чувствую, что так будет гораздо проще.

0 голосов
/ 13 августа 2010

Google не хочет, чтобы вы помещали рекламу в рамку, и забанит вас, если они узнают ... Это в условиях обслуживания раздел 5 ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...