简体   繁体   English

将iFrame宏添加到Umbraco

[英]Add iFrame macro to Umbraco

I am adding a XSLT for adding iFrame in Umbraco. 我正在添加XSLT,用于在Umbraco中添加iFrame。

Here is my XSLT 这是我的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>

Apprently when I add the macro to the form and run the page it throws an error 适当地,当我将宏添加到窗体并运行页面时,它将引发错误

Error reading XSLT file: iFrameContactUs.xslt

I have followed steps from this link 我已按照此链接中的步骤进行操作

Steps followed 遵循的步骤

  • I first created an XSLT file in the Developer section in umbraco. 我首先在umbraco的“开发人员”部分中创建了XSLT文件。
  • Then I added parameters to the same XSLT in the macro section (location, width and height). 然后,我在宏部分的相同XSLT中添加了参数(位置,宽度和高度)。
  • Now, I went to the settings tab and then navigated to the page and added this to the html 现在,我转到“设置”标签,然后导航到该页面并将其添加到html

@Umbraco.RenderMacro("IFrameContactUs", new {height="700px", location="url of the page", width="500px"}) @ Umbraco.RenderMacro(“ IFrameContactUs”,新的{height =“ 700px”,位置=“页面的网址”,宽度=“ 500px”})

But, when I run the code i get the error saying 但是,当我运行代码时,出现错误提示

Error reading XSLT 读取XSLT时出错

Could someone tell me what is wrong in the XSLT and why it is not running in my website 有人可以告诉我XSLT出了什么问题以及为什么它不在我的网站上运行

The Umbraco specific XSLT extensions have been removed in version 7, that's why it's failing. Umbraco专用的XSLT扩展已在版本7中删除,这就是失败的原因。

Instead, go to Developer -> Partial View Macro Files and create one there instead. 相反,请转到“开发人员”->“部分视图宏文件”,然后在其中创建一个。 Remember to leave the check mark in "Create Macro". 请记住将复选标记保留在“创建宏”中。

Insert the following in the file: 在文件中插入以下内容:

@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>

Add the same parameters to the actual macro as before, and it should work exactly as planned (and it's even short and readable) ;-) 向实际宏中添加与以前相同的参数,并且它应完全按计划工作(并且简短且可读);-)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM