2

我正在尝试将 Google 翻译代码从 PHP(wordpress 插件)输出到页面,即使我将完全相同的代码行直接粘贴到控制台并运行它,它也会给我 Illegal Token 错误。

这是我的PHP:

    function AddTranslateSidebar(){
  echo "<script>
    jQuery(document).ready(function(){
      gt = escape('<div id=\"google_translate_element\"></div><script type=\"text/javascript\">function googleTranslateElementInit() {new google.translate.TranslateElement({pageLanguage: \"en\", layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, \"google_translate_element\");}</script><script type=\"text/javascript\" src=\"http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit\"></script>');
      jQuery('#sidebar').prepend(unescape(gt));
    });
  </script>";
}

该代码将以下内容作为 HTML/JavaScript 输出到页面中:

<script>
    jQuery(document).ready(function(){
      gt = escape('<div id="google_translate_element"></div><script type="text/javascript">function googleTranslateElementInit() {new google.translate.TranslateElement({pageLanguage: "en", layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, "google_translate_element");}</script><script type="text/javascript" src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>');
      jQuery('#sidebar').prepend(unescape(gt));
    });
  </script>

导致错误的原因

Uncaught SyntaxError: Unexpected token ILLEGAL 

在 gt = escape( ... ); 线。

但是,如果我使用检查器直接从 HTML 源代码复制该代码,然后将其粘贴到控制台并运行它,它就会工作,并且会显示翻译下拉菜单。

为什么会这样?

谢谢。

4

2 回答 2

4

字符序列</script>总是意味着结束当前脚本块。我怀疑这是导致问题的原因。

您不能</script>在 JavaScript 字符串中逐字包含。相反,您需要将其分解并重新连接各个部分。

例如这个:

"</script>"

应该变成这样:

"<" + "/script>"
于 2012-11-08T19:34:23.647 回答
0

改为gt = escape('...')刚刚gt = '...'

于 2012-11-08T19:32:29.543 回答