在Opera中,当我序列化xml文档时,它将返回添加了XML声明的字符串。 在Firefox和Chrome中不会发生这种情况,我希望Opera返回与Firefox和Chrome相同的结果。

http://jsfiddle.net/superbDeveloper/Qst5e/9/ (下面的JavaScript代码)

JavaScript代码

//test xml serializer
var s = new XMLSerializer();  
var d = document;  
var str = s.serializeToString(d);  
console.log("1)  serializeToString "); 
console.log(str);

Firefox中的结果

1) serializeToString
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head> <meta content="text/html; charset=UTF-8" http-equiv="content-type" /> <title> - jsFiddle demo by superbDeveloper</title> <script src="/js/lib/mootools-core-1.4.2-full-nocompat.js" type="text/javascript"></script> <link href="/css/normalize.css" type="text/css" rel="stylesheet" /> <link href="/css/result-light.css" type="text/css" rel="stylesheet" /> <style type="text/css"> </style>.....

Opera中的结果

1)  serializeToString 
<?xml version="1.0"?><html><head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
  <title> - jsFiddle demo</title>

  <script type="text/javascript" src="/js/lib/mootools-core-1.4.2-full-nocompat.js"/>

  <link rel="stylesheet" type="text/css" href="/css/normalize.css"/>
  <link rel="stylesheet" type="text/css" href="/css/result-light.css"/>

  <style type="text/css">

  </style>...

请注意,已在Opera浏览器中添加了XML声明<?xml version="1.0"?> 有没有一种方法可以阻止Opera添加XML声明? 或者如何删除XML声明? 我想到了使用substring但这并不是一个很好的解决方案。

===============>>#1 票数:1 已采纳

好了,此时您拥有的是一个字符串,因此使用字符串方法就变得很优雅:)

我不知道有其他方法可以做到。

===============>>#2 票数:0

此问题仅在非IE浏览器中。 使用documentElement解决方案。

xmlData = jQuery(xmlData);
var oSerializer = new XMLSerializer();

if (typeof xmlData[0].documentElement !== 'undefined') {
  var xmlString = oSerializer.serializeToString(xmlData[0].documentElement);
} else {
  var xmlString = oSerializer.serializeToString(xmlData[0]);
}

  ask by zulucoda translate from so

未解决问题?本站智能推荐:

1回复

在使用XMLSerializer()序列化之前从XML中删除无效字符

我正在尝试将用户输入存储在客户端(javascript)的XML文档中,并将其传输到服务器以实现持久性。 例如,一个用户粘贴在包含STX字符(0x2)的文本中。 XMLSerializer没有转义STX字符,因此没有序列化为格式良好的XML。 或者.attr()调用可能已经转义了STX
1回复

使用浏览器XMLSerializer()生成不带XHTML实体的XML

我正在使用XMLSerializer()来输出内存中的XML文档,但它似乎使用XHTML标准实体“授权”元素,例如& 。 我想生成一个没有XHTML entites的XML文档 。 我的目标DTD没有定义这些实体,因此如果用户碰巧输入了具有相应XHTML实体的字符,则序列化文档的格式
1回复

使用.animate .scrollTop()滚动时在Opera中闪烁屏幕

这是我正在努力的网站: http : //kognitek.nazwa.pl/stockize/mak/MMprodukcja/parallaxProject/stronaTestowa/test.html 在歌剧中用箭头键向下滚动时,该站点闪烁。 这是我用于滚动的代码: 我已经
1回复

使用西里尔布局时,在Opera中不会触发Onkeyup

我正在努力理解为什么出现以下问题。 我有一个输入框,我想在其中附加一个自动完成框。 这是功能的开始。 没问题 然后,我挂接onkeydown和onkeyup事件,以便可以在用户键入时显示该框。 到现在为止还挺好。 一切都可以在Windows和Linux上的每个浏览器(
3回复

提交时使用JavaScript的Opera问题

我有一个带有onchange =“ do_something()”的输入元素。 当我键入并按下Enter键时,它可以在Firefox和Chromium(未在IE和Safari中进行测试)正确执行(先执行do_something,然后提交),但是在Opera中却无法执行(立即提交)。 我尝试使
1回复

无法在Chrome / Opera / Safari中解析XML

我从SOAP Web服务获得以下响应,我需要解析该响应以在HTML页面中显示数据 以下是我用来检索<b:BusinessUnitId>标记值的代码段。 函数的输入是resultXml ,它是上面的XML,是我作为"b:PrivilegeId"传递的attributeName
1回复

xmlserializer从xlink:html svg图像标记中剥离xlink

我正在创建一个javascript界面​​,以便将xlinked图像动态添加到教室地图中。 图像附加并在屏幕上显示如下标签: 但是一旦我通过xmlserializer传递它以便我可以保存文件,它会从前面剥离xlink标记: 创建: 这意味着svg失去了cactii
4回复

Opera中的onbeforeunload

我正在使用netadictos在此处发布的代码。 我想要做的就是当用户离开或关闭窗口/标签时显示警告。 netadictos发布的代码似乎在IE7,FF 3.0.5,Safari 3.2.1和Chrome中运行良好,但它在Opera v9.63中不起作用。 有没有人知道在Opera中做
1回复

使用Ajax在Opera中刷新页面

我正在尝试在Opera 12.12版中刷新页面(包含两个gridviews)的内容。 似乎我的页面在某些中间位置阻塞了,因为它保持空白。 我的代码在Opera以外的所有浏览器中均能完美运行: 我还使用了ajax更新面板,并且网格视图位于面板内部,而lbnRefreshList设置为A
4回复

模仿窗口。 使用javascript在Opera中的错误

我目前正在开发一个Web应用程序,我有一个JS日志记录机制来处理未被页面内的js代码捕获的Javascript错误。 我使用window.onerror来捕获所有这些错误并将其他地址记录在哪里。 但问题是Opera没有window.onerror事件。 我能想到的一种方法是,对所有js