2011-12-28 5 views
0

가능한 복제를 document.write로 :
Where is the .JS file in this code? And why are they calling it this way?자바 스크립트 PHP는

이 내 자바 스크립트 코드입니다. showcode.php

<script type="text/javascript" charset="utf-8">(function(){ 
var a="publisher-121"; 
var n="top"; 
var z="45"; 
var h="125"; 
var w="125"; 
var nofollow="no"; 
var e=document.getElementsByTagName("script")[0]; 
var d=document.createElement("script"); 
d.src=('https:'==document.location.protocol ? 'https://' : 'http://') +"server.com/adcode.php?a="+a+"&h="+h+"&w="+w+"&n="+n+"&z="+z; 
d.async = true; 
d.defer = true; 
d.type="text/javascript"; 
e.parentNode.insertBefore(d,e); 
})();</script> 

당신이 볼 수 있듯이, http://server.com/adcode.php?a=publisher-121&n=top&z=45&w=125&h=125

에 URL 점은이 모든 페이지는 다음과 같다했습니다 (adcode.php를)

<?php echo "document.write('<div id=\"ha_adblock ".$a."_".$z."\" class=\"ha_adblock".$a."_".$z."\" style=\"width:".$h."px;height:".$w."px;background:#eee;text-align:center;cursor:pointer\" onClick=\"window.location.href=\'click.php?a=".$a."&z=".$z."&g=http://refererurl.com/;\'return false;\"><a href=\"http://refererurl.com/\" onClick=\"window.location.href=\'click.php?a=".$a."&z=".$z."&g=http://refererurl.com/;\'return false;\" style=\"color:#333;font-weight:bold\">advert</a></div>');"; ?> 

그러나 - 페이지가 공백으로 표시됩니다. Firebug는 내 코드가 오류없이로드되고 실행되었음을 보여줍니다. PHP 태그가 작동하는 스크립트 태그 안에 document.write라는 코드를 방금 뱉어 내면 PHP 콜백이 작동하지 않는 것입니까?

+0

내가 무엇을 놓치고 때마다 실행됩니다

전화 자동화 된 기능? PHP 호출이 보이지 않습니다. –

+0

마지막 스 니펫이 에코로 묶입니다. 내 doc.write 또는 echo에는 문제가 없습니다. 나는 \ "\"등을 사용했다.이 샘플에서 나는 가짜보기를 보여주고있다. – TheBlackBenzKid

+0

페이지에 아무 것도 나타나지 않습니까? 소스를 보시면 JavaScript가 보입니까, 아니면 비어 있습니까? – jprofitt

답변

1

defer 또는 async 특성에 포함 된 스크립트에서 document.write을 사용할 수 없습니다. 그렇게하는 것은 비논리적입니다.

또한 문자열의 따옴표를 이스케이프해야합니다. 색상 코드가있는 모든 편집기는 내부에 따옴표로 \을 넣지 않는 한 속성 내용이 스 트린에 포함되어 있지 않음을 나타냅니다.

+0

제거해도 여전히 작동하지 않습니다. 왜 그런가요? 비논리적 인 말인가? Google과 대부분의 광고 네트워크가 이것을합니다. – TheBlackBenzKid

+0

Google은 내가 마지막으로 확인한 '지연'또는 '비동기'를 사용하지 않기 때문에로드하는 동안 전체 페이지를 잠글 수 있습니다. 하지만 상관없이, 당신은 당신의 인용문에서 벗어 났습니까? 브라우저의 오류 콘솔을 확인 했습니까? –

0

PHP 파일에서 큰 따옴표 (")를 올바르게 이스케이프 처리하지 않았습니다. 문자 앞에 백 슬래시 (\)를 사용해야합니다 (here 참조). PHP 스크립트 읽어야?

<?php echo "document.write('<div id=\"adblock\" class=\"ha_adblock121_45\" style=\"width:125px;height:125px;background:#eee;text-align:center;cursor:pointer\" onClick=\"window.location.href=click.php?g=http://refererurl.com/;return false;\"><a href=\"http://refererurl.com/\" onClick=\"window.location.href=click.php?g=http://refererurl.com/;return false;\" style=\"color:#333;font-weight:bold\">advert</a></div>');"; ?> 
+0

나는 내 첫 글의 내 코멘트에서 이미 언급했다. 나는 그것을 벗어났다. 내 게시물을 업데이트했습니다. – TheBlackBenzKid

0

< PHP는 에코 "< 스크립트> (함수() {document.write를 ('< 사업부 아이디 = \"애드 블록의 \ "클래스 = \"ha_adblock121_45 \ "스타일 = \ "width : 125px, height : 125px, 배경 : #eee, 텍스트 맞춤 : 가운데, 커서 : 포인터 \"onClick = \ "window.location.href = click.php? g = http : //refererurl.com/; return false; \ "> </a> </div> ')))(); </script>"; ? > 페이지가로드 .. :-)