2011-09-19 3 views
1

나는 php를 통해 javascript로 내용을 보내서 tinymce 편집 상자를 생성합니다. 내가 찾은jQuery PHP 스크립트에서 html 변수를 수신하는 데 문제가 있습니다.

Uncaught SyntaxError: Unexpected token ILLEGAL 

:

나는

<script> 
addBox('<?$content?>'); 
</script> 

같은 것을 문제는 전송 된 텍스트 함수가 오류와 같은 수익을 돌파하는 "/"문자가 그 때마다됩니다하고 있어요 적어도이 문자로이 오류를 반환하는 것은 ... 다른 사람들과 일어날 지 모르겠다. 이 함수는 다음과 같이 호출 할 때 오류가 발생합니다.

addBox("&lt;p&gt;Fundada em 2000 e inserida no &lt;strong&gt;Grupo CIL&lt;/strong&gt;, a CilNet &amp;eacute; uma empresa de Servi&amp;ccedil;os de Engenharia na &amp;aacute;rea das Tecnologias de Informa&amp;ccedil;&amp;atilde;o, com compet&amp;ecirc;ncias em Redes de Comunica&amp;ccedil;&amp;atilde;o de Dados, Voz e V&amp;iacute;deo.&lt;/p&gt; 
&lt;p&gt;Tendo como base uma larga experi&amp;ecirc;ncia no mercado nacional, a CilNet assume-se como um parceiro tecnol&amp;oacute;gico no sector empresarial, com especializa&amp;ccedil;&amp;atilde;o em solu&amp;ccedil;&amp;otilde;es tecnol&amp;oacute;gicas pioneiras a n&amp;iacute;vel mundial.&amp;nbsp;&lt;/p&gt;"); 

아무도 도와 줄 수 있습니까? 다음과 같이

addBox의 코드는 다음과 같습니다

function addBox(text){ 
    elem = "txt" + window.counter; 

    var tiny = $.ajax({ 
     type: "POST", 
     url: "inc/ajax.php?act=inserebox", 
     data: "value=txt" + window.counter + "&text="+encodeURIComponent(text), 
     async: false 
    }).responseText; 

    $('.more_boxes').append(tiny); 
    //$(tiny).append('.more_boxes'); 


    tinyMCE.init({ 
     url:'../js/tinymce/jscripts/tiny_mce/plugins/ibrowser', 
     mode:"exact", 
     elements: elem, 
     theme:"advanced", 
     height:"220", 
     entity_encoding : "raw", 
     plugins : "safari,pagebreak,style,table,advimage,advlink,emotions,iespell,media,searchreplace,print,contextmenu,paste,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,inlinepopups,ibrowser", 
     theme_advanced_toolbar_location : "top", 
     theme_advanced_toolbar_align : "left", 
     theme_advanced_statusbar_location : "bottom", 
     theme_advanced_resizing : false 
    }); 
    window.counter+=1; 

    return true; 
} 
+0

addBox는 무엇을하고 있습니까? 확실히 인코딩 문제와 같은 냄새가납니다. –

+0

문제가 addBox 호출에있는 함수 자체가 아닙니다 ... – jribeiro

+0

Html 디코딩 시도 - http://www.opinionatedgeek.com/dotnet/tools/htmlencode/decode.aspx –

답변

1

사용할 수있는 PHP의 내장 addslashes 그들이 TinyMCE에 상자에 전달하기 전에 잘못된 문자를 탈출. JS 스크립트에 전달하기 전에 $ content var에이 작업을 수행해야합니다.

편집 :

같이 디코딩 된 HTML 및 addSlashes의 조합을 시도해보십시오

<?php 
    // Code to create $content var here // 
    $content = addSlashes($content); 
?> 

<script> 
    <![CDATA[ 
     addBox('<?php echo $content; ?>'); 
    ]]> 
</script> 

당신이 <![CDATA[]]>와 자바 스크립트를 동봉하지 않은 경우, 브래킷을 angle'd 경우 당신은 오류를 얻을 수 있습니다 HTML 태그의 시작으로 해석되기 때문에 발견됩니다.

희망이 도움이됩니다.

+0

감사 불행히도 문제가 지속이 ... \t에 \t \t \t \t \t \t $ 콘텐츠 = addslashes를 ($을 변경 로우 - > 콘텐츠); \t \t \t \t \t \t \t $ this-> 아웃 = ' ''; – jribeiro

+0

@jrbeiro 답변이 수정되었습니다. – dSquared

+0

안녕하세요. 팁 고마워. 처음에 나는 예기치 않은 토큰을 얻었습니다. < "다음에는 같은 줄에 모두 넣었습니다 : // 그리고 그 오류를 없앴습니다.하지만 여전히 작동하지 않습니다 ... 이제는 새로운 줄을 긋는 것 같습니다 :/ – jribeiro

관련 문제