gpt4 book ai didi

javascript - javax.xml.transform.TransformerException : iframe is not allowed in this position in the stylesheet

转载 作者:行者123 更新时间:2023-12-03 11:02:32 24 4
gpt4 key购买 nike

我在 xsl 文件中放置了一个 javascript 函数。每当 onclick 事件触发时都必须调用此函数。

<script type= "text/javascript">
<xsl:text>
function embeddedPreview(source) {
if($("#embed").length > 0) {
//set the source to the location asked for
$("#embed").attr("src", source);
} else {
//Create the embed iframe
$("#preview-embed").append("<iframe id='embed' src='"+source+"' width='100%' height='342px' style='border:none;'/>"); //requires jQuery
}
}
</xsl:text>
</script>

当我运行此命令时,出现以下错误,指向第 9 行。

javax.xml.transform.TransformerException: iframe is not allowed in this position in the stylesheet!

下面是我的 xsl 文件的一部分,其中必须附加 iframe,特别是在 id 为“preview-embed”的 div 中。

这是什么意思? div 不允许附加 iframe 吗?请帮我。

最佳答案

在 DSpace XMLUI 中,我相信这是包含 jQuery 的官方方式。在主题的 sitemap.xmap 文件中,添加如下所示的 loadJQuery 行。这种方法的好处是只在使用 jQuery 时才包含它。

        <map:match pattern="**">

<!-- Step 1: Generate the DRI page -->
<map:generate type="file" src="cocoon://DRI/{1}"/>

<!-- Step 2 Add page metadata -->
<map:select type="browser">
<!-- Internet explorer 6 -->
<map:when test="explorer6">
<map:transform type="IncludePageMeta">
<map:parameter name="stylesheet.screen#1" value="lib/style.css"/>
<map:parameter name="stylesheet.screen#2" value="lib/style-ie6.css"/>

<map:parameter name="theme.path" value="{global:theme-path}"/>
<map:parameter name="theme.name" value="{global:theme-name}"/>
</map:transform>
</map:when>
<!-- The theme has been tested with firefox 2.0 & i.e. 7.0 -->
<map:otherwise>
<map:transform type="IncludePageMeta">
<map:parameter name="stylesheet.screen" value="lib/style.css"/>

<map:parameter name="javascript#1" value="../../loadJQuery.js"/>
<map:parameter name="javascript#2" value="lib/gu-custom.js"/>
<map:parameter name="javascript#3" value="../mobile/lib/cookies.js"/>
<map:parameter name="javascript#4" value="../mobile/lib/detectmobile.js"/>

<map:parameter name="theme.path" value="{global:theme-path}"/>
<map:parameter name="theme.name" value="{global:theme-name}"/>
</map:transform>
</map:otherwise>
</map:select>

我发现在某些情况下,当我需要加载 jQuery 时却没有加载它。我没有使用上面的机制包含 jQuery,而是覆盖了构建 html head block 的 XMLUI 模板,并在那里显式调用 jQuery。

<xsl:template name="buildHead">
<head>
...
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">&#160;</script>
...
</head>
</xsl:template>

我覆盖的模板存在于此处:https://github.com/DSpace/DSpace/blob/master/dspace-xmlui/src/main/webapp/themes/dri2xhtml/structural.xsl#L152

关于javascript - javax.xml.transform.TransformerException : iframe is not allowed in this position in the stylesheet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28020688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com