我试图通过使用GET方法获取html数据并使用.html()方法添加到div来显示弹出窗口。下面是我为此编写的代码。这在IE和Firefox中运行良好,但在Chrome和Safari中失败。
function openPopupWindow(url, width) {
$.ajax({
url: url,
type: 'GET',
timeout: 180000,
success: function(data){
var popUpBody = $("div.popupDivClass").html(data);
$(popUpBody).dialog({
autoOpen: false,
resizable: false,
width:width,
modal: true
});
//$("div.ui-dialog-titlebar").hide();
$(popUpBody).dialog( "open" );
}
});
}
我收到以下异常:
未捕获错误:INVALID_STATE_ERR:DOM异常11 - jquery-1.4.4.min.js:122
有什么建议吗?
答案 0 :(得分:5)
您需要删除DOCTYPE上的任何引用。例如。我有同样的问题,我删除了以下行,它就像一个魅力:
<!doctype html public "*">
答案 1 :(得分:0)
可能是因为您选择的$("div.popupDivClass")
可能是多个元素。并且html(data)
不知道从元素数组返回什么。试试这样的事情
$("div.popupDivClass").each(function ()
{
$(this).html(data);
})
或尝试按id
注意:但不保证。
答案 2 :(得分:0)
以下两行导致问题。 我从数据字符串中删除了以下行,并在chrome和safari中正常工作:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
答案 3 :(得分:0)
只是为了帮助其他人解决Chrome浏览器和Safari问题。看起来Chrome对于可以使用jquery.html()插入的内容非常有用。
我发现Chrome有两种情况:错误:INVALID_STATE_ERR:DOM异常11 异常
插入错误的html时。喜欢 。 Upss我忘了用/关闭标签。所以$('body').html("<button value='This is a button'>");
将为您提供例外11.解决方案很容易,只需插入有效的XHTML。
在Chrome控制台中尝试此操作$('body').html("Cápsula");
符号是那里的问题。我的(几乎)解决方案是将&符号转换为Unicode,如$('body')。html(“\ u0026psula”);是&amp;。请注意,&符号不是唯一与铬对抗的符号。
也许页面编码与此有关。
所以你的问题是你的数据变量返回你的Ajax