jquery 无法在 IE 中使用 ajax 响应作为上下文

标签 jquery ajax sharepoint callback

我的问题是,在我的ajax回调中,当我将查询的上下文设置为ajax调用返回的html时,它找不到任何元素。

一些发现:

  1. 该问题在 Firefox 中从未出现
  2. 只有当以具有一定权限的用户身份登录 SharePoint 时,才会在 IE 中出现此问题,从而导致生成某些额外的 html 以方便管理功能。我得出的结论是,正是这个额外的 html 导致了问题。

不幸的是,我无法控制生成的 html,因为它是由 SharePoint 生成的。

我已经隔离了问题并创建了 a simple test page供您查看。

最佳答案

问题在于 jQuery 如何实例化传递给它的 html,可能缺乏良好的跨浏览器字符串到 dom 解析技术(例如 Mozilla 上的 createContextualFragment)。

具体来说,jQuery 的 clean 函数中有两个正则表达式需要修复:

857: var match = /^<(\w+)\s*\/?>$/.exec(elems[0]);
874: elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){

这两种方法都无法处理名称中带有冒号的标签。

修复:

857: var match = /^<([\w:]+)\s*\/?>$/.exec(elems[0]);
874: elem = elem.replace(/(<([\w:]+)[^>]*?)\/>/g, function(all, front, tag){

关于jquery 无法在 IE 中使用 ajax 响应作为上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1548701/

相关文章:

jquery - Jssor、iFrame、内联 CSS 和 Firefox

javascript - 使用 jquery 抓取 HTML 并操作元素

javascript - jQuery UI 自动完成

javascript - 根据之前的选择数据从 JSON 数据加载选择选项

ruby - 通过 Ruby Controller 在 SharePoint 上使用 Web 服务

sharepoint - SharePoint 列表在基于 SOA 的企业中是邪恶的吗?

javascript - 单击按钮时在 Javascript 函数中调用 Ajax

javascript - 如何在ajax中将上下文传递给done

sharepoint - 递归枚举 SharePoint 列表中的所有文件夹

javascript - 如何使用jquery检索xml子节点