2013-10-24 3 views
0

Когда происходит определенное событие, которое я слушаю, я хочу заполнить div 'divDynamicAdvert` javascript, который вызывает мой код Google Ad.Как добавить предупреждение javascript к innerHTML во время выполнения

Огромное спасибо «tenbits» для показа мне, что мне нужно присоединяя узел сценария следующим образом:

function myEventHandler(evt)   //called when event is caught 
{ 
    var script = document.createElement('script'); 
    script.textContent = 'alert(1)'; 
    document.getElementById('divDynamicAdvert').appendChild(script); 
} 

Это прекрасно работает, но вместо предупреждения, мне нужно вставить объявления Google Javascript:

<script type="text/javascript"><!-- 
     google_ad_client = "ca-pub-3286208413631803"; 
     /* Standard MPU */ 
     google_ad_slot = "8630273973"; 
     google_ad_width = 300; 
     google_ad_height = 250; 
     //--> 
</script> 
<script type="text/javascript" 
     src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> 
</script> 

Я пробовал:

var script = document.createElement('script'); 
script.textContent = 'google_ad_client = 'ca-pub-3286208413631803'; google_ad_slot = '8630273973'; google_ad_width = 300; google_ad_height = 250;'; 
document.getElementById('divDynamicAdvert').appendChild(script); 

var script = document.createElement('script src="http://pagead2.googlesyndication.com/pagead/show_ads.js"'); 
document.getElementById('divDynamicAdvert').appendChild(script); 

Я пытался избежать косой черты тоже но не повезло ... Можете ли вы, ребята, помочь?

+0

Hb вы просто вызываете 'alert()' в логике JS, где вы назначаете 'innerHTML'? – adamb

+0

Ваша реклама действительно перезапишет вашу страницу, если вы ее вставьте. –

+0

Возможно, если бы вы могли сказать, чего вы пытаетесь достичь, вместо того, чтобы мы могли дать вам лучшую альтернативу. – plalx

ответ

1

Как @slebetman уже сказал, innerHTML не работает. Если вы пытаетесь оценить сценарий с помощью DOM, а не eval(code) и т.д. - сделать это с SCRIPT Node:

var script = document.createElement('script'); 
script.textContent = 'alert(1)'; 

document.getElementById('divDynamicAdvert').appendChild(script); 
// actually it doesnt matter where you append it 

EDIT:

В любом случае создать SCRIPT УЗЕЛ, а затем манипулировать с ним - добавить содержимое скрипт в ИЛИ добавить атрибут Src, если ссылаться на внешний источник

var script; 

// content 
script = document.createElement('script') 
script.textContent = 'alert(1)' 
document.body.appendChild(script); 

// google api source 
script = document.createElement('script'); 
script.src = 'ANY_URL'; 
// -> in this case, same as script.setAttribute('src', 'ANY_URL'); 

document.body.appendChild(script); 

Имея некоторые дополнительные вопросы, не он сидеть, чтобы спросить в комментариях.

+0

Это блестящие TenBits, спасибо - я обновил свой вопрос, чтобы отразить ваш вклад ... – wotney

Смежные вопросы