2014-01-25 59 views
0

我不知道如何來解釋這一所謂的JavaScript函數,我就告訴你想我試圖做返回由JavaScript函數錯誤

我有一個JavaScript函數,增加了新的內容,一個div

function stopUpload(success) { 
    document.getElementById("load-content").innerHTML = success + document.getElementById("load-content").innerHTML; 
} 

然而,成功在其內部具有一個JavaScript函數:

success = ' 
     //more html 
     <script type=\"text/javascript\">     
      $(\"body\").share({ 
       onClickId: \"share-default-29\", 
       owner: \"brfieger\", 
       description: \"asdasdasdasd\", 
       image: \"\", 
       pid: \"29\", 
       type: \"status\" 
      });      
     </script> 
     //more html 
    '; 

我得到一個錯誤,因爲它是認識

</script> 

,並終止腳本

Uncaught SyntaxError: Unexpected token ILLEGAL 

如果它的事項,我打電話stopUpload像:

<script type="text/javascript"> 
    window.top.window.stopUpload('//success content above'); 
</script> 

我不知道如何解決這個問題,我將承擔腳本封裝在一個字符串中,直到被評估纔會被識別,但它是

另外,爲了便於閱讀,我做了新的行。在代碼中,所有新行都轉換爲\ n

+0

你不應該從示例中刪除的JS,反正嘗試執行什麼是腳本標記之間,字面上就是這樣。最有可能的錯誤是逃避字符串,在HTML內部,當你不應該。即:'$(\「body \」)' – Philipp

+0

我刪除了只是和一切按預期工作,這是不是一個問題轉義HTML腳本或腳本里面的js – user3023421

+0

:l stackoverflow突出欺騙我! – Philipp

回答

4

如果使用'</script>',腳本將終止。然後,您可以使用'</scr'+'ipt>'

Demo


注:上面的代碼中避免錯誤,但不執行該腳本。

如果要執行它,你應該使用DOM方法:

var s = document.createElement('script'); 
s.text = "alert('a')"; 
document.body.appendChild(s); 

Demo

+0

但是,這不會評估腳本內部的內容 – user3023421