如何在 xml 文档中包含 Javascript?

IT技术 javascript xml
2021-02-28 01:18:58

任务似乎很简单:如何在 xml 文档中包含一个 Javascript 文件,以便至少 Opera 和 Firefox 可以实际解析它并执行代码?

6个回答

添加一个说明 XHTML 命名空间的脚本,它会运行得很好。

<xhtml:script xmlns:xhtml="http://www.w3.org/1999/xhtml"
                src="file.js"
                type="application/javascript"/>

另请参阅 http://www.ibm.com/developerworks/xml/library/x-fox3/

@user4815100 这表示“在这个标签及其后代中,命名空间xhtml意味着"http://www.w3.org/1999/xhtml"命名空间”。它基本上允许您在任何 XML 文档中包含 XHTML 元素。
2021-05-12 01:18:58

如果我明白了,您希望 XML 文档在浏览器中查看时运行 javascript?

这不是 XML 标准的一部分,因此在它被支持之前不会被支持(我认为这永远不会被支持,因为 XML 不是用于显示,而是用于数据)。如果您在谈论 XHTML,那么这是另一回事。

——

编辑:只是为了澄清我的答案。

XML 从未打算成为像 HTML 那样的显示标记,这就是开发 XHTML(符合 XML 标准的 HTML)的原因。已经使浏览器以某种方式解释 XHTML,但 XML 只是原始数据。

如果您希望您的 XML 运行附加功能,例如 JavaScript,您将需要考虑使用 XSLT 将您的 XML 转换为 XHTML,从而利用浏览器的功能。

xhtml 只是 xml 的一个特例。现在是什么让 xml 不适合运行 javascript?从理论上讲,js 与 xml 的设计目的无关,我看不到任何联系,也没有任何理由限制 js 为 xml 文档运行。
2021-04-30 01:18:58
是的,你说得对,我说的是 xml,而不是 xhtml。我不关心标准,只关心实际的浏览器功能。他们确实支持 <?xml-stylesheet type="text/css" href="style.css"?>,我认为 Javascript 应该有类似的东西。
2021-05-05 01:18:58
我认为您需要考虑 XML 的用途。您可以使用 XSLT 将 XML 转换为 XHTML,然后将页面作为 HTML 文档打开,其中包含您想要运行的所有 javascript。
2021-05-11 01:18:58
@snitko - 主要是没有浏览器会将它理解为显示标记,并且要获得一些基本的东西,比如事件的工作,你必须定义如此多的扩展,你可能会使用 xhtml,它已经很容易地定义了这些东西
2021-05-18 01:18:58
<script xmlns="http://www.w3.org/1999/xhtml"><![CDATA[
alert('Hello');
]]></script>

或者对于外部 javascript:

<script xmlns="http://www.w3.org/1999/xhtml" src="external.js"></script>

适用于 Firefox 和 Opera。

可以确认 xmlns 是解决方案:) 很好的答案!在 Chrome 中工作!虽然我觉得它可以运行 getElementById/querySelectorAll 很奇怪,因为它不在正确的命名空间中,而且我的架构可能使用不同的属性来表示它们。
2021-05-04 01:18:58

我这样做了:

XSLT:

<xsl:value-of select="/label[@id='MyScript']/text()" disable-output-escaping="yes"/>

XML:

<label id="MyScript"><![CDATA[
<script type="text/javascript">
alert("Hello world");
</script>
]]></label>

将 XML 和 Javascript 嵌入到 XHTML 文档中,然后使用动态 HTML 的大量和详细记录的功能。

由于某些浏览器实现了 XML 文档的弱且文档不足的 CSS 样式,因此它们必须支持嵌入在 XML 中的 Javascript 的执行,就像有任何连接一样,因此您将比您更快地启动和运行在这两个想法之间。