2017-03-28 6 views
1

Ich versuche, wordpress Titel Titel und Auszüge (die Persisch sind) zu javascript übergeben. hier ist der Code in .php Skriptdatei:Pass Unicode PHP-Variable zu Javascript

function change(){ 
      document.getElementById("link").innerHTML = '<a href="$links[2]">$titles[2]</a>'; 
      document.getElementById("exer").innerHTML = '$excerpts[2]'; 
      document.getElementById("img").innerHTML = '$imgs[2]'; 
} 

Es gibt kein Problem mit Titeln, aber wenn ich Auszüge hinzufügen, macht es Fehler in javasripts. Der erzeugte javascript Tag im Browser:

 function change(){ 


      document.getElementById("link").innerHTML = '<a href="http://sirsaleh.com/2016/09/21/semi-private-idea/">یک ایده &#8211; حریم نیمه‌خصوصی</a>'; 
      document.getElementById("exer").innerHTML = '<p>چیزی که می‌خوام بگم با حریم نیمه‌خصوصی‌های تعریف شده در جاهای دیگه، اشتباه گرفته نشه. مطلبی که پیش روی شماست کاملا من‌درآوردی است. ما همیشه می‌گیم یه چیز خصوصیه و یه چیز عمومیه. داشتم به این فکر می‌کردم، بد نیست با همه چیزای عمومی مثل هم‌رفتار نکنیم! به‌نظرم یه وقتایی به نظرم لازمه یه &hellip; <a href="http://sirsaleh.com/2016/09/21/semi-private-idea/" class="more-link">ادامه خواندن<span class="screen-reader-text"> &#8220;یک ایده &#8211; حریم نیمه‌خصوصی&#8221;</span></a></p> 
'; 
        document.getElementById("img").innerHTML = ''; 
    </script> 

hier der Fehler in Chrom-Browser angezeigt ist (es bezieht sich I übergeben Sie Javascript $ Auszüge):

Uncaught SyntaxError: Invalid or unexpected token 

Wenn ich json_encode in php um Vario für Javascript zu konvertieren, verschwindet der Fehler, aber alle Auszüge Variable werden leere Zeichenfolge "".

Ich versuchte einige regex Lösungen, um unerwünschte Nicht-Unicode-Zeichen zu löschen, aber es hat dasselbe Problem auch.

Jede Hilfe wird geschätzt.

Antwort

0

OH! Ich finde etwas in der Ausgabe von the_excerpt() Funktion von WordPress. Es enthält ein Newline-Zeichen im the_excerpt()-Ausgang. so dank this answer, habe ich Regex wie folgt aus:

$excerpts = preg_replace("/\r|\n/", "", $excerpts); 

und Problem gelöst!