发送HTML到javascript函数

海梅·雷(Jaime Rey)

我创建了一个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。提前致谢。

海梅·雷(Jaime Rey)

最后,我通过一种解决方法对其进行了修复,但实际上并未将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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章