`
jindw
  • 浏览: 508450 次
  • 性别: Icon_minigender_1
  • 来自: 初到北京
社区版块
存档分类
最新评论

请教Mozilla自定义标签的解析的问题。

阅读更多
今天重新考虑JSI装饰引擎的事情。

一个一年多前的老问题:

我在html中嵌入如下自定义标记:
<ns:test> <div>test</div> </ns:test>
Mozilla 浏览器将解析为: <ns:test></ns:test> <div>test</div>
而不是我们想当然的:<ns:test> <div>test</div> </ns:test>

这样一来,JSI的装饰引擎就无法装饰这些div,table之类的块元素(现在的办法是在他们外面套一个span,极不优雅)

Google了半天没有找到任何解决办法。

倒是找到一个与我同样的问题:
http://groups.google.com/group/mozilla.dev.apps.firefox/browse_thread/thread/921eb0451e5ed66c

在这里问问大家,有没有谁考虑过这个问题呢?
最好有解决办法,那就不胜感激了,^_^
分享到:
评论
9 楼 jindw 2008-04-25  
hax 写道
jindw 写道
其实这个也不管命名空间的事情。
直接用
<mytag>
  <div>Mozilla 系列浏览器中,这个div不会解析为 mytag的子元素</div>
</mytag>

也是一样的问题



IE也不会。不过IE貌似可以没来由的加上一句 document.createElement('mytag') 来改变这一行为。


我在处理IE的时候,确实发现了一些问题(具体都不太记得了,呵呵)。不过,可以通过一些技巧改变。
给指定命名空间的元素,绑上一个空的hta,就可以正常工作了。
8 楼 hax 2008-04-17  
HexUzHoNG 写道
改为xhtml后,div还有其它一些元素的显示效果和html貌似会不一样。

好像这种情况下会有问题,一个div宽100%,里面一个table,table宽100%,这个div要模仿浏览器滚动条功能,就是overflow-y这种效果。

这时div的宽度会超过浏览器屏幕的宽度,造成出现浏览器横向滚动条。

不知道是不是代码哪个地方没写对还是什么问题。



可能因为div的scrollbar不算在content之内,所以超过了width。
7 楼 hax 2008-04-17  
jindw 写道
其实这个也不管命名空间的事情。
直接用
<mytag>
  <div>Mozilla 系列浏览器中,这个div不会解析为 mytag的子元素</div>
</mytag>

也是一样的问题



IE也不会。不过IE貌似可以没来由的加上一句 document.createElement('mytag') 来改变这一行为。
6 楼 hax 2008-04-17  
fyting 写道
嗯,我正好也遇到相同的问题,response里的Content-Type要设置为text/xml或者application/xhtml+xml,否则FireFox不会正确识别为xml,你可以用FireBug的HTML功能看出两者区别,没有正确识别时会显示出一个属性:“_moz-userdefined”,郁闷无比……如果要靠服务器端修改代码,对客户端框架而言是个致命影响。


还有一个方法就是把文件后缀名改为xhtml。这样在本地会识别为xhtml,而多数Web server也会自动加上正确的content-type。
5 楼 HexUzHoNG 2008-04-15  
改为xhtml后,div还有其它一些元素的显示效果和html貌似会不一样。

好像这种情况下会有问题,一个div宽100%,里面一个table,table宽100%,这个div要模仿浏览器滚动条功能,就是overflow-y这种效果。

这时div的宽度会超过浏览器屏幕的宽度,造成出现浏览器横向滚动条。

不知道是不是代码哪个地方没写对还是什么问题。
4 楼 jindw 2008-04-15  
其实这个也不管命名空间的事情。
直接用
<mytag>
  <div>Mozilla 系列浏览器中,这个div不会解析为 mytag的子元素</div>
</mytag>

也是一样的问题
3 楼 jindw 2008-04-15  
hax 写道
就是要serve为xhtml,才能识别为xml。

那是当能,但是实际运用中又不能接受,那样依赖变化太大,比如tagName都变成小写了,以前的很多代码都会又问题。
2 楼 fyting 2008-04-15  
嗯,我正好也遇到相同的问题,response里的Content-Type要设置为text/xml或者application/xhtml+xml,否则FireFox不会正确识别为xml,你可以用FireBug的HTML功能看出两者区别,没有正确识别时会显示出一个属性:“_moz-userdefined”,郁闷无比……如果要靠服务器端修改代码,对客户端框架而言是个致命影响。

我看decorator-support.js里面有这样的代码:
DecoratorEngine.prototype.buildTree = function(root){
  var tree = {children:[]};
  if(this.tagExp){
    this.htmlWalk(root,tree);
    return tree.children;
  }
  if(BrowserInfo.isIE()){
    var decoratorElements = root.all.urns(dns);
  }else if(document.documentElement.tagName == 'html' //xhtml
    && document.documentElement.namespaceURI == 'http://www.w3.org/1999/xhtml'){
    var decoratorElements = document.getElementsByTagNameNS(dns,'*');
  }else{
    this.domWalk(root,tree);
    return tree.children;
  }

并且FF里面也完全正常,代码还没看懂,原来都是通过加span来解决的吗?

另外,我研究了下Netvibes,他的UWA规范是这样的:
    <widget:preferences>
      <preference name="townName" type="text" label="Town" defaultValue="" />
    </widget:preferences>

结果他最后直接使用了document.getElementsByTagName('preference')


有没有什么办法可以解决这个问题呢,用namespace是一件看起来很不错的事情……找到篇MSDN的blog,也在抱怨,不过距离现在又有一年多了,不知道有没有新的变化http://blogs.msdn.com/dthorpe/archive/2006/12/18/namespaces-in-html-too-much-trouble-to-bother-with.aspx
还找到这篇没有来得及看,得明天来解决了。http://blogs.nitobi.com/dave/?p=131
1 楼 hax 2008-04-15  
就是要serve为xhtml,才能识别为xml。

相关推荐

    解决网站开发问题:自定义标签

    在这种情况下,自定义标签就显得尤为重要。自定义标签允许开发者扩展HTML语言,创建符合项目特性的特殊元素,以更好地实现个性化功能,例如上述描述中提到的分页功能。 自定义标签的实现方式主要有两种:HTML5中的...

    前端开源库-mozilla-toolkit-versioning

    "mozilla-toolkit-versioning" 是一个专为处理Mozilla工具包版本控制的开源库,它专注于解析Mozilla工具包版本格式。这个库的重要性在于,它帮助开发者准确理解和操作与Mozilla相关的项目版本信息,从而确保软件的...

    Readabilityjs一个mozilla的网页主体内容解析库

    这个库的出现是为了解决现代网页设计中常常出现的问题:过多的广告、装饰元素以及不清晰的文章布局,这些都可能使用户在阅读时分心。Readability.js的目标是提供一种解决方案,帮助开发者快速地获取页面的核心内容,...

    mozilla书和开发手册

    Mozilla 是一个开源软件项目,由Mozilla基金会领导,其主要成果是Firefox浏览器和Thunderbird电子邮件客户端。这个压缩包包含了两个关于Mozilla平台开发的重要资源:《Mozilla Developer Center》和《Prentice.Rapid...

    expatxml解析器.pdf

    3. 灵活性:允许用户为解析事件指定自定义的处理函数,适用于各种不同的应用场景。 Expat解析器的核心API函数如下: - XML_ParserCreate:创建一个新的解析器对象,可以指定编码方式,默认为UTF-8。 - XML_...

    org.mozilla.javascript-1.7.2.jar

    《深入解析org.mozilla.javascript-1.7.2.jar》 在Java开发中,JavaScript引擎的使用日益广泛,其中Mozilla的Rhino引擎是备受开发者青睐的一款。本文将围绕"org.mozilla.javascript-1.7.2.jar"这个资源包,详细讲解...

    org.mozilla.javascript-1.7.2.jar.zip

    《深入解析Mozilla JavaScript引擎:org.mozilla.javascript-1.7.2.jar.zip详解》 JavaScript,作为互联网上最广泛使用的脚本语言,其在Web开发中的地位不可动摇。而Mozilla的JavaScript实现,以其强大的功能和良好...

    mozilla_源码编译简介

    - **解析配置选项**: - **mk_add_options**: 控制 CVS checkout 和 update 的行为。例如,`MOZ_OBJDIR` 用于指定编译的根目录。 - **ac_add_options**: 控制编译过程。如 `--enable-optimize` 表示启用优化,`--...

    Mozilla Firefox 火狐浏览器

    7. **同步功能**:Firefox的同步功能允许用户在不同设备间同步书签、历史记录、密码、打开的标签页和自定义设置,方便用户在多设备间切换。 8. **性能优化**:Firefox采用先进的JavaScript引擎,确保快速加载网页和...

    基于 Mozilla 的扩展开发

    Mozilla 的核心是 Gecko 渲染引擎,负责解析和显示网页内容。它基于组件对象模型(Component Object Model, COM),提供了一种跨平台的方式来构建和运行应用程序。此外,XPCOM(跨平台组件对象模型)是 Mozilla 的一...

    expat xml解析器使用经典说明

    Expat是一个用C语言编写的XML解析库,最初是作为开源项目,归属于Mozilla项目的一部分。它由著名的XML专家James Clark创建,他也是groff、Jade、XP(一个Java XML解析器包)、XT(一个Java XSL引擎)等众多工具包的...

    mozilla help.rar

    这款浏览器由Mozilla基金会维护,其核心是Gecko渲染引擎,能够解析并显示网页内容。"mozilla help.rar" 这个压缩包文件包含了Mozilla Firefox的开发者文档,这些文档对于想要了解Firefox内部工作原理、开发Firefox...

    自定义Firefox搜索框

    标题“自定义Firefox搜索框”涉及的是如何个性化和优化Mozilla Firefox浏览器中的搜索功能。这个话题主要涵盖两个核心知识点:Firefox的搜索插件和XML配置文件的使用。 首先,Firefox的搜索插件是浏览器内置的一种...

    通过MOZILLA的javascript引擎(SpiderMonkey)执行js代码

    注意,使用SpiderMonkey时,你需要处理错误和异常,因为JavaScript代码可能包含错误或者触发安全问题。此外,还要考虑性能优化,尤其是在大量或复杂JavaScript代码的场景下。 总的来说,Mozilla的SpiderMonkey提供...

    org.mozilla.universalchardet.jar

    org.mozilla.universalchardet.jar org.mozilla.universalchardet.jar

    mozilla xbl基本用法示例

    Mozilla XBL(XML Binding Language)是一种强大的技术,用于在Firefox和其他基于Gecko的浏览器中创建可重用的用户界面组件。XBL允许开发者通过XML来定义元素的外观和行为,结合了XHTML、CSS和JavaScript的功能,...

    mozilla检测网页编码的jar包

    标题中的“mozilla检测网页编码的jar包”实际上指的是Mozilla开源项目中的一个子模块,用于识别网页的字符编码。这个jar包并非来自Mozilla浏览器的核心代码,而可能是Mozilla Foundation或相关的开源社区开发的一个...

    如何在html中使用自定义字体

    在网页设计中,使用自定义字体可以使网站更加个性化,提升用户体验。本文将详细介绍如何在HTML中使用自定义字体,并通过示例代码进行说明。 #### 一、理解@font-face规则 要在HTML文档中使用自定义字体,首先需要...

    Mozilla Developer Center 离线版 电子书

    本电子书为MDC(Mozilla Developer Center)http://developer.mozilla.org/的离线浏览版,共收录网页计4143页,包括AJAX,CSS,DOM,HTML,Javascript,NSS,RDF,RSS,SVG,XBL,XForms,XML,XML Web Services,...

    js解析二维码llqrcode.js

    =undefined) { // mozilla(firefox) url = window.URL.createObjectURL(file) ; } else if (window.webkitURL!=undefined) { // webkit or chrome url = window.webkitURL.createObjectURL(file) ; } return ...

Global site tag (gtag.js) - Google Analytics