HTML是由XSLT编写的。
我知道如何在XSLT本身中使用脚本,但不知道XSLT如何将脚本块写入DHTML。我知道如何手工编写HTML,但我当然希望XSLT来完成繁重的工作。
下面的代码是我所期望的,但是没有,它只是在页面的顶部显示代码。
<head>
<title>My HTML</title>
<msxsl:script type="text/javascript" version="1.3">
<![CDATA[
var coll = document.getElementsByClassName("collapsible");
var i;
for (i = 0; i < coll.length; i++) {
coll[i].addEventListener("click", function() {
this.classList.toggle("active");
var content = this.nextElementSibling;
if (content.style.display === "block") {
content.style.display = "none";
} else {
content.style.display = "block";
}
});
}
]]>
</msxsl:script>
</head>这是NHS的工作,所以请.谢谢。
发布于 2020-04-28 14:59:27
如果您的XSLT创建的HTML应该包含一个HTML元素,那么您实际上应该按照使用script或head元素的方式插入它。在XSLT中,XSLT是XML,您需要确保内联Javascript代码不会破坏XML规则,就像您对CDATA部分所做的那样,但是script元素将是一个普通的script元素,而不是msxsl:script元素。
除了使用xsl:output method="html"之外,没有什么特别之处。
在head部分中使用var coll = document.getElementsByClassName("collapsible");并试图在解析任何元素之前处理集合的特定代码是值得怀疑的,但这是一个恰当使用Javascript的问题,可能是事件处理程序或函数调用而不是内联代码的问题。
取决于XSLT的执行位置(客户机或服务器),XSLT和Javascript的整个交互可能很脆弱,动态添加脚本,即使没有XSLT,也可能是跨浏览器的挑战。
https://stackoverflow.com/questions/61482085
复制相似问题