2013-10-24 3 views
0

특정 이벤트가 발생하면 내 Google 광고 코드를 호출하는 javadynamic div 'divDynamicAdvert`를 채 웁니다. 내가 필요한 것을 저에게 보여주기위한 "tenbits"에런타임에 innerHTML에 자바 스크립트 경고를 추가하려면 어떻게해야합니까?

거대한 덕분에이 같은 스크립트 노드를 추가합니다 :

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

이 잘 작동하지만, 경고 대신에, 나는 Google 광고를 삽입해야 자바 스크립트 : 나는 시도했다

<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 당신은'innerHTML'을 할당하고있는 JS 로직에서'alert()'를 호출 할 뿐이죠? – adamb

+0

그런 식으로 삽입하면 귀하의 광고가 귀하의 페이지를 실제로 덮어 씁니다. –

+0

아마 우리가 당신에게 더 나은 대안을 줄 수있는 방법 대신에 당신이 성취하고자하는 것을 말할 수 있다면. – plalx

답변

1

@slebetman이 이미 말했듯이, innerHTML은 효과가 없습니다.

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

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

편집 : - 당신은 등, DOM을 통해 스크립트를 평가하려고하지 eval(code) 경우 SCRIPT 노드와 함께이 작업을 수행 할 어떤 경우 SCRIPT 노드 만들기에

을 한 다음에 조작 - 외부 소스

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); 

몇 가지 추가 질문을 가졌를 참조하는 경우 그가하지 않습니다, 그것은 또는 추가 src 속성에 스크립트의 내용을 추가 의견에 물어보기.

+0

이것은 훌륭합니다 TenBits, Thanks - 귀하의 의견을 반영하기 위해 제 질문을 업데이트했습니다 ... – wotney

관련 문제