【问题标题】:AJAX - Keeping linkable content within a DIVAJAX - 将可链接内容保存在 DIV 中
【发布时间】:2012-04-19 08:17:19
【问题描述】:

我目前负责维护我公司的内部知识库。该站点使用 Flash 导航和 ASP 将内容拉入页面中间的 div 中。我正在重新设计网站并取消使用 Flash 和 ASP,原因有很多,其中一个是我们需要此资源可脱机使用。所以我创建了静态导航,并使用 AJAX 将内容强制放入 DIV。我意识到这不是最佳实践,但我们需要在每个页面上进行某种导航,并且修改数百甚至数千个单独的页面不是一种选择。到目前为止,我所做的每一件事都做得很好!

问题来了,

在 DIV 中打开的页面本身就有大量链接。这些链接正在新页面中打开,而这不会。每个其他页面都必须在该 DIV 内打开。我什至不知道这是否可能,但即使这不是最佳实践,我也很想得到答案。

提前感谢您的回复,

马蒂

【问题讨论】:

  • 你会用jQuery吗?它为事件委托提供了一种非常易于使用的方法,并且应该可以解决您的问题(鉴于所有这些链接都在您的域内部)。看看jQuery.on()
  • 他需要使用 jQuery 在每个页面上重写,所以他仍然需要进行全局标题重写。 AJAX 不是一个选项,因为它需要离线运行。
  • @JohnGreen-PageSpike,你确定吗?我认为他对 ajax 没问题(已经在使用它),只是想捕获在 DOM 更新后添加的锚点的点击。如果这就是他的要求,那么授权就是要走的路。不,jQuery 只需要包含在第一页中,其他的将直接注入到某些 div 中。
  • 不,您不能从 file::// 协议运行 AJAX。他现在可能在服务器外做某事,但如果他认为这会转化为离线,那不是。由于没有 AJAX,他必须通过某种框架单独加载每个文件。尽管他应该能够嗅出框架的内容,但这通常是不可预测的,因为事件是如何跨窗口工作的。因此,建议再次进行全局标头重写。

标签: javascript asp.net html ajax flash


【解决方案1】:

在不付出很多努力的情况下做到这一点的唯一方法是在 iframe 中打开该页面。您将添加 iframe 并完成。话虽如此,我必须告诉您,这被认为是一种不好的做法。

您的另一个选择是对所有这些页面进行更改,以便将它们所引用的链接加载到该 div 中。

【讨论】:

    【解决方案2】:

    使用

    <base target="name-of-the-div-where-you-want-the-link-to=open"> 
    

    在头部,你应该很高兴

    【讨论】:

    • 有趣,我不知道。肯定想看看这是否适用于给定的场景。
    • 不适用于内部链接。而且我相信需要的是 iframe 的名称,而不是 div。进入 Iframe 上下文后,默认的 _self 目标应该可以正常工作。
    • 让它在此处的页面上工作,但会等着看他是否尝试
    • 我只是在暗示这是不必要的。您使用 IFRAME 定义页面(尽管我认为 Mozilla 允许您指定 DIV,但这将是一个巨大的错误,几乎在其他任何地方都会中断)。您可以在页面内部或通过导航在外部定义该 IFRAME 的 SRC。一旦内容在 IFRAME 的上下文中,BASE 元素就完全没有必要了,因为 IFRAME 中的内容会自动定位到自身——并且任何外部导航链接(在页眉中)也会定位到 IFRAME。
    • 非常感谢 John 的澄清,以后工作时一定会牢记这一点。
    猜你喜欢
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 2022-11-02
    • 1970-01-01
    相关资源
    最近更新 更多