2013-08-29 38 views
1

我有一個值,當前正在通過onclick訪問並傳遞給JavaScript函數。將HTML字符串傳遞給JavaScript函數

<a href="#" onclick="openTextWindow('<%=myVar.varDefinition.getText()%>');">Text</a> 

下面顯示了我從getText方法收到的示例值。

<h1>My Header</h1><br />My text 

這個值然後傳遞給我的openTextWindow方法。

function openTextWindow(inText) { 
    myWindow = window.open('','','width=500, height=300'); 
    myWindow.document.write(inText); 
    myWindow.focus(); 
} 

出於某種原因,存儲在inText值不HTML標記,我上面顯示的字符串相匹配。它最終看起來像這樣。

"<lt/>h1<gt/>My Header<lt/>/h1<gt/><lt/>br /<gt/>My text 

inText寫入myWindow,我想新的窗口與下面一條線一個風格的頁眉和My text內的文本My Header渲染。我嘗試過更換和逃避角色,但沒有運氣。任何想法如何解決這個問題或更好的方式來完成我想要做的事情?謝謝!

+0

<%= myVar.varDefinition.getText()%>這既不JS也不HTML。 – Virus721

+0

對不起,我想這是一個需要在JS中解決的問題,所以我沒有在我的標籤中包含JSP。 –

+0

你的jsp顯然是問題的根源。 – Virus721

回答

2

您可以將HTML存儲在隱藏的DIV或textarea中,然後從您的函數中抓取該文件,而不是嘗試將其內聯傳遞。

<a href="#" onclick="openTextWindow('DIV1');">Text</a> 
<div id="DIV1" style="display:none"><%=myVar.varDefinition.getText()%></div> 

JS:

function openTextWindow(divName) { 
    var inText = document.getElemenyById(divName).innerHTML; 
    myWindow = window.open('','','width=500, height=300'); 
    myWindow.document.write(inText); 
    myWindow.focus(); 
} 
+0

我開始添加一些這但我必須跑到午餐。我會讓你知道它是如何運作的!謝謝。 –

+0

真是太棒了!你救了我的一天:〜) – RRTW

相關問題