2015-07-21 46 views
0

我有簡單的代碼創建一個彈出窗口並添加文本,這是工作的罰款:意外標記非法的jQuery腳本標籤

<!DOCTYPE html><html><body><script src='./js/jquery.min.js'></script><script>var blade = window.open("", "BLADE", "width=500, height=500, scrollbars=yes, resizable=yes");$(blade.document.body).html("<!DOCTYPE html><html><body>this is my 'content'</body></html>");</script></body></html> 

的問題是,當我加入到孩子(新的HTML)一行負載的jQuery還有:

<!DOCTYPE html><html><body><script src='./js/jquery.min.js'></script><script>var blade = window.open("", "BLADE", "width=500, height=500, scrollbars=yes, resizable=yes");$(blade.document.body).html("<!DOCTYPE html><html><body><script src='./js/jquery.min.js'></script>this is my 'content'</body></html>");</script></body></html> 

然後彈出不會創建和主網頁上我可以看到:this is my 'content'"); 檢查時JS控制檯,我可以在這種情況下也看到:Uncaught SyntaxError: Unexpected token ILLEGAL

我將不勝感激,幫助我瞭解如何將jquery添加到彈出的html窗口代碼中。

回答

1

你需要逃避你的最終腳本標籤,如下圖所示:

$(blade.document.body).html("<!DOCTYPE html><html><body><script src='./js/jquery.min.js'><\/script>this is my 'content'</body></html>"); 

</script><\/script>

而且,你不需要"<!DOCTYPE html><html><body>"在追加因爲你的目標節點已經是body

+0

完美 - 轉義字符解決了這個問題。 – masterofchant

-1

看起來像您的JS文件的鏈接可能無法正常工作。除非你的'js'文件夾在名爲'。'的文件夾內,否則不應該有'./',這是我懷疑的。

仔細檢查您是否鏈接到正確的文件,甚至可能嘗試鏈接到它的託管版本(以下),以確保這是問題所在。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> 
2

這是關閉外部腳本塊的字符串中的</script>的經典案例。

></scr" + "ipt>th 

<!DOCTYPE html> 
<html>  
<body> 
    <script src='./js/jquery.min.js'></script> 
    <script> 
    var blade = window.open("", "BLADE", "width=500, height=500, scrollbars=yes, resizable=yes"); 
    $(blade.document.body).html("<!DOCTYPE html><html><body><script src='./js/jquery.min.js'></sc" + "ript>this is my 'content'</body></html>"); 
    </script> 
</body> 
</html> 
+0

那是老派的男人。我沒有這樣做,因爲document.write() – wwwmarty