首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含具有特定锚点的页面

包含具有特定锚点的页面
EN

Stack Overflow用户
提问于 2017-11-26 09:18:53
回答 2查看 155关注 0票数 0

我是jsf的初学者,我想在p:dialog中打开html页面。

当我使用<ui: include>像这样显示页面时:

代码语言:javascript
复制
<p:dialog  header="Dialog"  
           widgetVar="dlg"
           resizable="false" 
           dynamic="true"   
           fitViewport="true"> 

    <ui:include src="/resources/md.html" />

</p:dialog>

它可以正常工作,但是当我想在这样的特定锚中打开页面时:

代码语言:javascript
复制
<p:dialog header="Dialog"
          widgetVar="dlg" 
          resizable="false" 
          dynamic="true"   
          fitViewport="true">     

    <ui:include src="/resources/md.html#anchor" />

</p:dialog>

它不起作用。

有人能帮忙吗。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-27 13:48:17

这是使用iframe tag的另一种解决方案,它工作得非常完美:

代码语言:javascript
复制
<p:commandLink value="iframe" onclick="PF('dlg').show()"   />


<p:dialog header="Dialog" widgetVar="dlg">         
<iframe height="500" width="800" src="/md.xhtml#anchor"></iframe>
</p:dialog>

不需要js。

票数 0
EN

Stack Overflow用户

发布于 2017-11-27 09:18:01

您的尝试失败了,因为您的md.html被静态地包含在‘父’jsf页面中。因此,只能使用父jsf页面来实现“转到锚”功能。

为了实现p:dialog中包含的页面,我将使用简单的java脚本。

JS

将此JS函数添加到父jsf页面(定义对话框的页面)

代码语言:javascript
复制
function gotoAnchor(anchorID) {
    document.getElementById(anchorID).scrollIntoView();
}

XHTML

onShow上添加p:dialog属性如下

代码语言:javascript
复制
<p:dialog ... onShow="gotoAnchor('anchorID')" ...> 
    <ui:include src="/resources/md.html" />
</p:dialog>

其中anchorID是md.html中锚元素的id (在您的示例中,它的值是‘锚’)。

这样,当显示p:dialog时,函数gotoAnchor将被执行,迫使页面在必需的元素上滚动。

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

https://stackoverflow.com/questions/47494649

复制
相关文章

相似问题

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