добавить javascript на html-страницу с помощью jquery - PullRequest
2 голосов
/ 05 августа 2010

Я хочу добавить объявление gavascript google, но я не могу вставить javascript в div с помощью jquery.Я пытаюсь смоделировать мою проблему с помощью этого теста, который использует несколько советов, которые я нашел по stackoverflow, но он не работает.

Я хочу, чтобы <script type='text/javascript'>document.write('hello world');</script> был вставлен в div, и "Hello World" будетотображается между тегом_1 и тегом_2.

Вот код:

<html>
    <head>
      <script type="text/javascript" src="jquery.js"></script>
      <script type="text/javascript">
         $(document).ready(function() {
         var str="<script type='text/javascript'>document.write('hello world');";
         str+="<";
         str+="/script>";

         $('#insert_here').append(str);
         });
      </script>
    </head>
    <body>
      tag_1<br/>
      <div id="insert_here">
      </div>
      tag_2<br/>
    </body>
</html>

Резервуары для ваших ответов,

Лукас

Ответы [ 3 ]

2 голосов
/ 05 августа 2010

См. мой ответ на Динамически вставленные теги предназначены для работы? , почему вы не можете использовать innerHTML , функции которого jQuery отображаютсяпри передаче строки HTML, чтобы вставить элемент скрипта. document.write также потерпит неудачу при использовании после полного анализа документа .

Чтобы обойти это, вам придется использовать функции DOM для вставки элементав див.Объявления Google - это iframe, поэтому обычно бывает найти код iframe и добавить его вместо этого.

Чтобы правильно вставить элемент скрипта, вам нужно использовать функции DOM, например:

var txt = 'alert("Hello");';
var scr = document.createElement("script");
scr.type= "text/javascript";

// We have to use .text for IE, .textContent for standards compliance.
if ("textContent" in scr)
    scr.textContent = txt;
else
    scr.text = txt;

// Finally, insert the script element into the div
document.getElementById("insert_here").appendChild(scr);
1 голос
/ 28 февраля 2012

Я нашел отличное решение:

  1. Вставьте свой код Google Adsense в любое место на своей странице - например, если ваша CMS только позволяет вам поставить это на правой стороне, то вставьте его туда.
  2. Оберните вокруг него div * style
  3. Добавьте код jquery, чтобы переместить div в нужное место.

Поскольку javascript уже запущен, проблем с перемещением блока сценария туда, куда вы хотите, не возникает.

например. если вы хотите поместить 2 блока рекламы Google, разбросанных по всему блогу (скажем, после пункта 1 и после пункта 4), тогда это идеально.

Вот пример кода:

<div id="advert1" style="display:none">
<div class="advertbox advertfont">
    <div style="float:right;">
        <script type="text/javascript"><!--
        google_ad_client = "pub-xxxxxxxxxxxxxxxxx";
        /* Video box */
        google_ad_slot = "xxxxxxxxxxxxxxxxx"
        google_ad_width = 300;
        google_ad_height = 250;
        //-->
        </script>
        <script type="text/javascript"
        src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
        </script>
    </div>
</div>
</div>

<script>
$(document).ready(function() {

$('#advert1').appendTo("#content p:eq(1)");
$('#advert1').css("display", "block");

});
</script>

p.s. #content находится там, где начинается контент в моей CMS (Squarespace), так что вы можете заменить его тем, что есть в вашей CMS. Это доставляет удовольствие и не нарушает Google ToS.

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

Вы не можете использовать document.write после завершения загрузки страницы.Вместо этого просто вставьте содержимое, в которое вы хотите записать.

<script type="text/javascript">
     $(function() { // This is equivalent to document.ready
         var str="hello world";
         $('#insert_here').append(str);
     });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...