将json对象属性设置为HTML

时间:2012-03-20 15:07:54

标签: c# jquery asp.net

我正在尝试像

这样的东西
var template = new Object();
template.DescriptionHTML ='*html content goes in here*'

这就是原因:

当用户点击按钮时,会打开一个弹出窗口,他/她可以使用WYSIWYG编辑器输入html文本。当他们点击提交时,我想使用jQuery将HTML内容传递给父页面。现在,如果我将普通文本从弹出文件传递到父文件,则此方法有效。但是,如果我尝试传递HTML,它会中断。我不想转义HTML字符,因为在父页面中我想显示HTML内容。怎么办呢?

我知道其他替代方法,例如回发父页面并获取更新的内容。但如果回复可以限于使上述情况有效,我将不胜感激。

3 个答案:

答案 0 :(得分:1)

这个工作,重要的一点是只有从主窗口引用的jquery而不是弹出窗口并从那里控制弹出窗口

主窗口

<!DOCTYPE html>
<html>
<head>
    <title>Main Window</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

    <script type="text/javascript">
        $(function () {
            $(".editable").click(function () {
                var 
                    $element = $(this),
                    popupWindow = window.open("popup.html", "popup", "width=525,height=250");

                $(popupWindow).load(function () {
                    var 
                        $editor = $(popupWindow.document).find("#Editor"),
                        $submit = $(popupWindow.document).find("#Submit");

                    $editor.val($element.html());
                    $submit.click(function () {
                        $element.html($editor.val());
                        popupWindow.close();
                    });
                });

                popupWindow.element = this;
            });
        });
    </script>
</head>
<body>

    <div class="editable">
        <p>I'm editable click me</p>
    </div>

    <div class="editable">
        <p>I'm editable as well click me</p>
    </div>

</body>
</html>

弹出窗口

<!DOCTYPE html>
<html>
<head>
    <title>Popup Window</title>
</head>
<body>
    <textarea id="Editor" rows=10 cols=60></textarea>
    <input id="Submit" value="Submit" type="button" />
</body>
</html>

答案 1 :(得分:0)

尝试:

$('#submitbuttonid').click(function() { or $('#formid').submit(function() {
   var html = $('#textarea').html();
   // do what you want with it from here
   template = [];
   template.DescriptionHTML = html;
});

您需要将submitbuttonid更改为提交按钮的id,或formid更改为提交表单的id#textarea更改为所见即所得文本区域id

这使用.click().html().submit()

答案 2 :(得分:0)

也许您应该使用绝对定位的div(对话框)而不是弹出窗口? 这样你就不会进入单独的窗口问题,例如权限弹出窗口阻止程序

然后ManseUK上面的代码适合你