我创建了一个javascript函数来显示一个对话框,并接收标题和正文两个参数,这些参数将从滑块中的链接中调用。问题是我希望主体能够显示HTML代码,因此您可以显示链接或其他内容。所有这些都在Liferay门户中使用的速度模板中(以防万一,它很有用)。这就是我现在所拥有的:
JS:
function displayPopup(title, body) {
$("#more-popup").html(body);
$("#more-popup").dialog({
modal: true,
title: title
});
return false;
}
速度:
#if ($slide.displayPopup.data == true)
#set( $popupBody = $escapeTool.html($slide.popupBody.data) )
<a href="#" class="moreButton" onclick="displayPopup('$slide.popupTitle.data', '$slide.popupBody.data')">$moreTextString</a>
#elseif ($slide.Link.data)
<a href="$slide.Link.data" class="moreButton">$moreTextString</a>
#end
我无法解决此问题。首先,由于引号,html是错误的。在对HTML实体使用转义后,该链接似乎还可以,但是单击该链接时会跳出一个javascript异常:Uncaught exception: Unexpected Identifier
另外,我不怎么将代码转换回可以插入对话框中的HTML。提前致谢。
最后,我通过一种解决方法对其进行了修复,但实际上并未将HTML传递给该函数,而是创建了div以显示需要它的每张幻灯片的弹出窗口。
速度
#if ($slide.displayPopup.data == true)
<a id="more-popup-button-$velocityCount" href="#" class="moreButton popup-button" >$moreTextString</a>
<div id="more-popup-$velocityCount" class="more-popup" title="$slide.popupTitle.data">
$slide.popupBody.data
</div>
#elseif ($slide.Link.data)
<a href="$slide.Link.data" class="moreButton">$moreTextString</a>
#end
JS
$("#slides a.moreButton.popup-button").click(function (event) {
var number = $(this).attr("id");
number = number.substr(number.lastIndexOf("-") + 1);
$("#more-popup-" + number).dialog({
modal: true
});
event.preventDefault();
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句