浏览器自定义命名空间元素处理器
Browser custom namespaced element processors
在浏览器环境中,以这种方式
创建 svg 元素 svg = document.createElement('svg');
将其附加到正文并使用 SVG 元素填充不起作用,因为svg.namespaceURI === 'http://www.w3.org/1999/xhtml'
但这样做svg = document.createElementNS('http://www.w3.org/2000/svg','svg')
它会起作用。
这是合理的,因为该元素应该以 svg 方式而不是 html 方式
处理同样,创建select = document.createElementNS('xxxx','select')
并附加到 body,该元素不会显示为众所周知的select
下拉列表,因为浏览器被告知它不是http://www.w3.org/1999/xhtml:select
元素,而是xxxx:select
。
似乎节点处理被调度到不同的处理器,具体取决于节点本身的 NS(识别时)。
是否可以为文档定义自定义命名空间URI,以便允许其具有该特定nsURI的节点以自定义方式进行处理,可能通过函数?
注意,不确定预期结果是什么?答案尝试演示一种使用ProcessingInstruction
的方法
// create `ProcessingInstruction`
var p = document.createProcessingInstruction("js", "{'"color'":'"blue'"}");
var div = document.getElementById("process");
document.body.insertBefore(p, div);
// use `ProcessingInstruction`
div.style.color = JSON.parse(div.previousSibling.nodeValue).color;
<!doctype html>
<html>
<body>
<div id="process">Process</div>
</body>
</html>
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 表追加而不附加最后一个元素
- 如何在jQuery中获取元素的形式
- 我可以获得相对于被点击元素的确切点击位置吗
- 在函数中添加数组元素的数值
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 将视口底部滚动到元素底部
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何使用jquery处理php循环通过元素
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 在Jquery detachment()和appendTo()之后定位元素
- 在动态创建的元素上获取对特定选择器的引用
- 浏览器自定义命名空间元素处理器