首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用XSLT编写DHTML

用XSLT编写DHTML
EN

Stack Overflow用户
提问于 2020-04-28 14:02:00
回答 1查看 75关注 0票数 0

HTML是由XSLT编写的。

  • 作为业余XSLT开发人员
  • 我想把一个javascript块写到HTML中(头部还是主体)
  • 这样就可以在HTML呈现时执行脚本(loo和when,DHTML)。

我知道如何在XSLT本身中使用脚本,但不知道XSLT如何将脚本块写入DHTML。我知道如何手工编写HTML,但我当然希望XSLT来完成繁重的工作。

下面的代码是我所期望的,但是没有,它只是在页面的顶部显示代码。

代码语言:javascript
复制
<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的工作,所以请.谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-04-28 14:59:27

如果您的XSLT创建的HTML应该包含一个HTML元素,那么您实际上应该按照使用scripthead元素的方式插入它。在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,也可能是跨浏览器的挑战。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61482085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档