Html Gwt和页面内超链接(第3章)会干扰历史标记
在我们的gwt应用程序中,一些元素从cms加载,并作为“HTML”-对象添加到页面中。到目前为止,这一切都很好。但是现在添加了一个更大的Html页面,该页面有一些锚元素可以跳转到此Html文档的不同部分。 这个锚看起来像:Html Gwt和页面内超链接(第3章)会干扰历史标记,html,gwt,anchor,Html,Gwt,Anchor,在我们的gwt应用程序中,一些元素从cms加载,并作为“HTML”-对象添加到页面中。到目前为止,这一切都很好。但是现在添加了一个更大的Html页面,该页面有一些锚元素可以跳转到此Html文档的不同部分。 这个锚看起来像: <a href="#Chapter3</a> 有点粗糙,但您可以尝试在iframe(GWT)中加载HTML内容。将ClickHandler附加到HTML小部件: myHTMLWidget.addClickHandler(new ClickHandler()
<a href="#Chapter3</a>
有点粗糙,但您可以尝试在iframe
(GWT)中加载HTML内容。将ClickHandler附加到HTML小部件:
myHTMLWidget.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// Stop this event
event.preventDefault();
Element e = Element.as(event.getNativeEvent().getEventTarget());
if (e.getAttribute("href").contains("#")) {
e.scrollIntoView();
}
}
});
如果需要,您可以使用不同的滚动行为(例如滚动到光标位置)。您是否尝试过使用不带空格的锚点?是-所有锚点都没有空格。“第三章”只是一个例子。你可能想更新你的问题,因为锚不能包含空格,并且可能会给不相关的答案提供理由。=)点击链接时,您希望的行为是什么?我知道链接是你无法控制的内容的一部分,但是根据你的喜好,你可以处理它来忽略点击,或者处理它来制作不同的(有效的)东西。告诉我们:)你在使用活动和场所设计模式吗?首先,我看不出“如何为脚本创建一个锚。锚的href设置为javascript:;,基于监听器将被添加到锚中的预期。”(你提到的方法的java文档)可能会有帮助,第二,内容是从服务器静态传递的,我不想以任何方式对其进行操作。它不起作用-没有效果:新建UiDisplayItem(新标签(标题),Frame.wrap((新HTML(内容)).getElement());将内容包装在iframe
中不起作用,因为只有在浏览器打开时才会显示
的内容。我的意思是设置框架,使用相对URL从服务器加载内容。内容必须是完整格式的HTML。好的,值得一试,但正如你提到的,它是粗糙的。但覆盖DefaulClickEvent至少同样粗糙:-|。还有一个如此古老的html特性所带来的混乱。
myHTMLWidget.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// Stop this event
event.preventDefault();
Element e = Element.as(event.getNativeEvent().getEventTarget());
if (e.getAttribute("href").contains("#")) {
e.scrollIntoView();
}
}
});