我正在尝试像
这样的东西var template = new Object();
template.DescriptionHTML ='*html content goes in here*'
这就是原因:
当用户点击按钮时,会打开一个弹出窗口,他/她可以使用WYSIWYG编辑器输入html文本。当他们点击提交时,我想使用jQuery将HTML内容传递给父页面。现在,如果我将普通文本从弹出文件传递到父文件,则此方法有效。但是,如果我尝试传递HTML,它会中断。我不想转义HTML字符,因为在父页面中我想显示HTML内容。怎么办呢?
我知道其他替代方法,例如回发父页面并获取更新的内容。但如果回复可以限于使上述情况有效,我将不胜感激。
答案 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
。
答案 2 :(得分:0)
也许您应该使用绝对定位的div(对话框)而不是弹出窗口? 这样你就不会进入单独的窗口问题,例如权限弹出窗口阻止程序
然后ManseUK上面的代码适合你