3

我有一个值,我当前正在访问并通过onclick.

<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 Header样式标题中的文本一起呈现,并My text在其下方的一行上。我试过替换和转义字符,但没有运气。关于如何解决这个问题或更好地完成我正在尝试做的事情的任何想法?谢谢!

4

1 回答 1

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();
}
于 2013-08-29T15:39:42.473 回答