AEM 的富文本 (RTE) 将作者域添加到链接之前?

标签 aem aem-6 aem-touch-ui

在新建的 AEM 6.3 作者服务器 (Service Pack 2) 上,RTE 组件自动将我们的作者 URL 添加到通过 Assets 选择器选择的任何 Assets 。

只有在选择 Assets 并单击“确定”后,才会在前面添加域。在单击确定之前,这里只有相对路径。

Author domain is not prepended to link yet

但在选择 Assets 后,可以立即从 JCR 确认该路径包含作者域。

Author domain prepended to link, as seen from JCR

如果您重新打开 Assets 选择器,那么前面的路径也在那里可见。

enter image description here

我不确定这是问题的根源,但我第一次看到在处理过程中出现绝对链接是在 Link.js 文件 (/libs/clientlibs/granite/richtext/core/js/commands/Link.js) 为标签创建一个 HTML 节点。尽管 url 是相对的,childNodes[0].href 是绝对的:

var helperSpan = context.createElement('span');
helperSpan.innerHTML = '<a href=\"' + url + '\"></a>';
attributes.href = helperSpan.childNodes[0].href;
attributes[CUI.rte.Common.HREF_ATTRIB] = helperSpan.childNodes[0].href;

在我们的作者 URL 前面显然不是我们想要的。知道为什么会发生这种情况吗?

我认为对话框不会影响任何东西,但这里有触摸对话框 XML 供引用:

<dialog xmlns:DICOM="http://ns.adobe.com/DICOM/" xmlns:ExtensisFontSense="http://www.extensis.com/meta/FontSense/" xmlns:GCamera="http://ns.google.com/photos/1.0/camera/" xmlns:GettyImagesGIFT="http://xmp.gettyimages.com/gift/1.0/" xmlns:Iptc4xmpCore="http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/" xmlns:Iptc4xmpExt="http://iptc.org/std/Iptc4xmpExt/2008-02-29/" xmlns:MP="http://ns.microsoft.com/photo/1.2/" xmlns:MicrosoftPhoto="http://ns.microsoft.com/photo/1.0" xmlns:MicrosoftPhoto_1_="http://ns.microsoft.com/photo/1.0/" xmlns:Z="urn:schemas-microsoft-com:" xmlns:aas="http://ns.apple.com/adjustment-settings/1.0/" xmlns:acdsee="http://ns.acdsee.com/iptc/1.0/" xmlns:adhocwf="http://ns.adobe.com/AcrobatAdhocWorkflow/1.0/" xmlns:adobe_dam="http://www.adobe.com/adobe_dam/1.0" xmlns:ag="http://www.acquitygroup.com" xmlns:album="http://ns.adobe.com/album/1.0/" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" xmlns:apple-fi="http://ns.apple.com/faceinfo/1.0/" xmlns:attr="http://ns.swcc.com/attr/1.0/" xmlns:author="http://springernature.com/ns/xmpExtensions/2.0/authorInfo/" xmlns:bext="http://ns.adobe.com/bwf/bext/1.0/" xmlns:cc="http://creativecommons.org/ns#" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:creatorAtom="http://ns.adobe.com/creatorAtom/1.0/" xmlns:crossmark="http://crossref.org/crossmark/1.0/" xmlns:crs="http://ns.adobe.com/camera-raw-settings/1.0/" xmlns:crx="http://www.day.com/crx/1.0" xmlns:dam="http://www.day.com/dam/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:def="http://mediabeacon.com/ns/default/1.0/" xmlns:desc="http://ns.adobe.com/xfa/promoted-desc/" xmlns:dex="http://ns.optimasc.com/dex/1.0/" xmlns:drone-dji="http://www.dji.com/drone-dji/1.0/" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmlns:exifEX="http://cipa.jp/exif/1.0/" xmlns:fd="http://www.adobe.com/aemfd/fd/1.0" xmlns:granite="http://www.adobe.com/jcr/granite/1.0" xmlns:idPriv="http://ns.adobe.com/xmp/InDesign/private" xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/" xmlns:jav="http://www.niso.org/schemas/jav/1.0/" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:lr="http://ns.adobe.com/lightroom/1.0/" xmlns:mb="http://brightech.com/ns/mb" xmlns:mediapro="http://ns.iview-multimedia.com/mediapro/1.0/" xmlns:mix="http://www.jcp.org/jcr/mix/1.0" xmlns:mwg-rs="http://www.metadataworkinggroup.com/schemas/regions/" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:oak="http://jackrabbit.apache.org/oak/ns/1.0" xmlns:oauth="http://oauth.net/" xmlns:panorama="http://ns.adobe.com/photoshop/1.0/panorama-profile" xmlns:pdf="http://ns.adobe.com/pdf/1.3/" xmlns:pdfaExtension="http://www.aiim.org/pdfa/ns/extension/" xmlns:pdfaField="http://www.aiim.org/pdfa/ns/field#" xmlns:pdfaProperty="http://www.aiim.org/pdfa/ns/property#" xmlns:pdfaSchema="http://www.aiim.org/pdfa/ns/schema#" xmlns:pdfaType="http://www.aiim.org/pdfa/ns/type#" xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/" xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/" xmlns:pdfxid="http://www.npes.org/pdfx/ns/id/" xmlns:photomechanic="http://ns.camerabits.com/photomechanic/1.0/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:plus="http://ns.useplus.org/ldf/xmp/1.0/" xmlns:pmtm="http://www.hdrsoft.com/photomatix_settings01" xmlns:prefix0="MSImagingV1" xmlns:prism="http://prismstandard.org/namespaces/basic/2.1/" xmlns:prism_1_="http://prismstandard.org/namespaces/basic/3.0/" xmlns:prismusagerights="http://prismstandard.org/namespaces/prismusagerights/2.1/" xmlns:prl="http://prismstandard.org/namespaces/prl/2.1/" xmlns:psAux="http://ns.adobe.com/exif/1.0/aux/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rep="internal" xmlns:s7sitecatalyst="http://www.day.com/s7sitecatalyst/1.0/" xmlns:s7userdata="http://www.day.com/s7userdata/1.0/" xmlns:scg="http://www.adobe.com/social/scg/1.0" xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:slingevent="http://sling.apache.org/jcr/event/1.0" xmlns:sn="http://springernature.com/ns/xmpExtensions/2.0/" xmlns:social="http://www.adobe.com/social/1.0" xmlns:stArea="http://ns.adobe.com/xmp/sType/Area#" xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stFNT="http://ns.adobe.com/xap/1.0/sType/Font#" xmlns:stMfs="http://ns.adobe.com/xap/1.0/sType/ManifestItem#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:swf="http://ns.adobe.com/swf/1.0/" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:viewerpreset="http://www.day.com/viewerpreset/1.0/" xmlns:vlt="http://www.day.com/jcr/vault/1.0" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpBJ="http://ns.adobe.com/xap/1.0/bj/" xmlns:xmpDM="http://ns.adobe.com/xmp/1.0/DynamicMedia/" xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/" xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:xmpNote="http://ns.adobe.com/xmp/note/" xmlns:xmpPLUS="http://ns.adobe.com/xap/1.0/PLUS/" xmlns:xmpRights="http://ns.adobe.com/xap/1.0/rights/" xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/" xmlns:xmp_1_="http://ns.abobe.com/xap/1.0/" jcr:primaryType="cq:Dialog" height="625" helpPath="en/cq/current/wcm/default_components.html#Text" xtype="dialog">
   <items jcr:primaryType="cq:WidgetCollection">
      <tab1 jcr:primaryType="cq:Widget" anchor="100%" title="Text" xtype="panel">
         <items jcr:primaryType="cq:WidgetCollection">
            <text jcr:primaryType="cq:Widget" height="500" hideLabel="true" name="./text" xtype="richtext">
               <rtePlugins jcr:primaryType="nt:unstructured">
                  <links jcr:primaryType="nt:unstructured">
                     <linkDialogConfig jcr:primaryType="nt:unstructured" height="316">
                        <linkAttributes jcr:primaryType="cq:WidgetCollection">
                           <linkAdvanced jcr:primaryType="cq:Widget" collapsed="true" collapsible="true" inputValue="advanced" name="./linkdialog/cq:adhocLinkTrackingTab" title="Link tracking" xtype="dialogfieldset">
                              <items jcr:primaryType="cq:WidgetCollection">
                                 <enable jcr:primaryType="nt:unstructured" attribute="enabletracking" fieldDescription="override analytics framework settings" fieldLabel="Custom link tracking" name="./linkdialog/cq:adhocLinkTrackingEnableTracking" xtype="checkbox">
                                    <listeners jcr:primaryType="nt:unstructured" check="function(component){var dlg=component.findParentByType('rtelinkdialog');dlg.enableSCFields(component.checked);}" />
                                 </enable>
                                 <events jcr:primaryType="nt:unstructured" attribute="adhocevents" fieldDescription="e.g.: event2, event7" fieldLabel="Include SiteCatalyst events" name="./linkdialog/cq:adhocLinkTrackingEvents" xtype="textfield" />
                                 <evars jcr:primaryType="nt:unstructured" attribute="adhocevars" fieldDescription="e.g.: eVar1: pagedata.url, prop4: 'const'" fieldLabel="Include SiteCatalyst variables" name="./linkdialog/cq:adhocLinkTrackingEvars" xtype="textfield" />
                              </items>
                           </linkAdvanced>
                        </linkAttributes>
                     </linkDialogConfig>
                  </links>
                  <paraformat jcr:primaryType="nt:unstructured" features="*">
                     <formats jcr:primaryType="cq:WidgetCollection">
                        <paragraph jcr:primaryType="nt:unstructured" description="paragraph" tag="p" />
                        <h2 jcr:primaryType="nt:unstructured" description="heading 2" tag="h2" />
                        <h3 jcr:primaryType="nt:unstructured" description="heading 3" tag="h3" />
                        <h4 jcr:primaryType="nt:unstructured" description="heading 4" tag="h4" />
                        <blockquote jcr:primaryType="nt:unstructured" description="quote" tag="blockquote" />
                     </formats>
                  </paraformat>
                  <styles jcr:primaryType="nt:unstructured" features="*">
                     <styles jcr:primaryType="cq:WidgetCollection">
                        <picLeft jcr:primaryType="nt:unstructured" cssName="float-left" text="Left Align Picture" />
                        <picRight jcr:primaryType="nt:unstructured" cssName="float-right" text="Right Align Picture" />
                        <picCenter jcr:primaryType="nt:unstructured" cssName="float-center" text="Center Align Picture" />
                        <button jcr:primaryType="nt:unstructured" cssName="button" text="Button" />
                        <largeButton jcr:primaryType="nt:unstructured" cssName="button large" text="Large Button" />
                     </styles>
                  </styles>
                  <edit jcr:primaryType="nt:unstructured" defaultPasteMode="wordhtml" stripHtmlTags="true" />
                  <justify jcr:primaryType="nt:unstructured" />
                  <spellcheck jcr:primaryType="nt:unstructured" features="*" />
                  <subsuperscript jcr:primaryType="nt:unstructured" features="*" />
                  <undo jcr:primaryType="nt:unstructured" features="*" />
                  <misctools jcr:primaryType="nt:unstructured" />
                  <format jcr:primaryType="nt:unstructured" />
                  <findreplace jcr:primaryType="nt:unstructured" features="*" />
               </rtePlugins>
               <htmlRules jcr:primaryType="nt:unstructured">
                  <docType jcr:primaryType="nt:unstructured">
                     <typeConfig jcr:primaryType="nt:unstructured" useSemanticMarkup="false" />
                  </docType>
                  <links jcr:primaryType="nt:unstructured">
                     <targetConfig jcr:primaryType="nt:unstructured" mode="none" />
                  </links>
               </htmlRules>
            </text>
            <isRichTextFlag jcr:primaryType="cq:Widget" ignoreData="true" name="./textIsRich" value="true" xtype="hidden" />
         </items>
      </tab1>
   </items>
</dialog>

最佳答案

我们使用的是 AEM Service Pack 6.3.2。安装累积服务包 6.3.3.3 解决了这个问题。

具体来说,它是对 com.adobe.granite.ui.coralui3-rte-0.0.32-CQ630-B0022 包中的 Coral RTE 组件的更新。 (“提供 RTE Core 和 Coral RTE 的 ExtJS 兼容版本作为客户端库的内容包。”)

事实证明,Link.js 文件 (libs/clientlibs/granite/richtext/core/js/commands/Link.js)确实包含我们怀疑的错误。

用于读取的代码:

var helperSpan = context.createElement('span');
helperSpan.innerHTML = '<a href=\"' + url + '\"></a>';
...
attributes[CUI.rte.Common.HREF_ATTRIB] = helperSpan.childNodes[0].href;

现在是:

var helperSpan = context.createElement('span');
helperSpan.innerHTML = '<a href=\"' + url + '\"></a>';
...
attributes[CUI.rte.Common.HREF_ATTRIB] = url;

关于AEM 的富文本 (RTE) 将作者域添加到链接之前?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54835468/

相关文章:

jquery - 如何在 AEM Touch UI 对话框中查找组件路径?

apache - CQ 和 Java EE 应用程序集成

java - Maven 插件问题 :maven-enforcer-plugin:3. 0.0-M3:enforce 某些 Enforcer 规则失败

apache - 在 Apache 服务器上运行的 AEM Dispatcher 上缓存视频返回 206

java - 如何从 AEM 读取二进制文件?

javascript - 使用 Javascript Use API 获取标签列表

字体文件的 AEM 6.3 404 错误

aem - 如何使用 resourceResolver 在 java 中获取运行模式