将iFrame宏添加到Umbraco

时间:2016-05-12 05:29:59

标签: html xml xslt iframe umbraco

我正在添加一个XSLT,用于在Umbraco中添加iFrame。

这是我的XSLT

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#x00A0;"> ]>
<xsl:stylesheet
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:msxml="urn:schemas-microsoft-com:xslt"
  xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets" xmlns:seoChecker.MetaData="urn:seoChecker.MetaData" xmlns:PS.XSLTsearch="urn:PS.XSLTsearch"
  exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets seoChecker.MetaData PS.XSLTsearch ">

<xsl:output method="xml" omit-xml-declaration="yes"/>

<xsl:param name="currentPage"/>
<xsl:variable name="location" select="/macro/location"/>
<xsl:variable name="width" select="/macro/width"/>
<xsl:variable name="height" select="/macro/height"/>
<xsl:template match="/">
  <iframe src="{$location}" width="{$width}" height="{$height}" type="text/html" frameborder="0">
Sorry, your browser does not support IFRAMES
</iframe>
</xsl:template>
</xsl:stylesheet>

显然,当我将宏添加到表单并运行页面时,它会抛出错误

Error reading XSLT file: iFrameContactUs.xslt

我已按照此link

的步骤进行操作

遵循的步骤

  • 我首先在umbraco的Developer部分创建了一个XSLT文件。
  • 然后我在宏部分(位置,宽度和高度)中向同一个XSLT添加了参数。
  • 现在,我转到设置标签,然后导航到该页面并将其添加到html

@ Umbraco.RenderMacro(&#34; IFrameContactUs&#34;,new {height =&#34; 700px&#34;,location =&#34;页面的网址&#34;,width =&#34; 500px的&#34;})

但是,当我运行代码时,我得到的错误是

  

读取XSLT时出错

有人能告诉我XSLT中有什么问题,以及为什么它没有在我的网站上运行

1 个答案:

答案 0 :(得分:4)

Umbraco特定的XSLT扩展已在版本7中删除,这就是它失败的原因。

相反,请转到开发者 - &gt;部分查看宏文件并在那里创建一个。请记住在“创建宏”中留下复选标记。

在文件中插入以下内容:

@inherits Umbraco.Web.Macros.PartialViewMacroPage
<iframe src="@Model.MacroParameters["location"]" width="@Model.MacroParameters["width"]" height="@Model.MacroParameters["height"]" type="text/html" frameborder="0">
Sorry, your browser does not support IFRAMES
</iframe>

像以前一样将相同的参数添加到实际的宏中,它应该按照计划完全正常工作(它甚至可以简短和可读); - )