当前位置: 首页 > 面试题库 >

处理js中的URL锚更改事件

东门彬
2023-03-14
问题内容

如何编写将对URL锚点进行任何更改的JavaScript回调代码?

例如从http://example.com#ahttp://example.com#b


问题答案:

Google自定义搜索引擎使用计时器来检查哈希值是否与之前的值相对应,而独立域中的子iframe会更新父级的位置哈希值,以包含iframe文档正文的大小。当计时器捕获到更改时,父级可以调整iframe的大小以匹配主体的iframe,以便不显示滚动条。

类似于以下内容可以达到相同目的:

var storedHash = window.location.hash;
window.setInterval(function () {
    if (window.location.hash != storedHash) {
        storedHash = window.location.hash;
        hashChanged(storedHash);
    }
}, 100); // Google uses 100ms intervals I think, might be lower

Google Chrome 5,Safari 5,Opera10.60
支持以下hashchange事件:

if ("onhashchange" in window) // does the browser support the hashchange event?
    window.onhashchange = function () {
        hashChanged(window.location.hash);
    }

并将其放在一起:

if ("onhashchange" in window) { // event supported?
    window.onhashchange = function () {
        hashChanged(window.location.hash);
    }
}
else { // event not supported:
    var storedHash = window.location.hash;
    window.setInterval(function () {
        if (window.location.hash != storedHash) {
            storedHash = window.location.hash;
            hashChanged(storedHash);
        }
    }, 100);
}

jQuery的也有一个插件,将检查hashchange事件,并提供了自己的如果需要的话。



 类似资料:
  • 问题内容: 内容: 我想使用jenkins定期仅处理SVN中已更改的文件,并将处理的输出提交回SVN。 原因: 我们正在将二进制文件提交到SVN中(我们正在使用Oracle Forms,并且正在提交fmb- Files)。我创建了一个脚本,将fmb导出到xml(使用Oracle的原始Fmb2XML工具),然后我将XML转换为我们也想提交的纯源。这使我们可以进行摸索,查看更改等。 问题: 目前,我只

  • 我改变了我的Wordpress目录结构。以下是我所拥有的: 所以我有一个包含插件和主题的内容目录。然后我有一个wordpress目录,其中包含核心WP文件,减去WP内容文件夹。 有了这个新结构,我必须用这个网址访问WP后端: 有没有办法改变它,这样我就可以像这样访问它: 我不希望wordpress在URL中。这是我需要做的htaccess更新,还是我可以在wp-config.php文件中使用的设置

  • 我需要更改JavaFX中标签的锚点。我将锚点描述为选择来翻译底层节点的点。默认情况下,锚点似乎是左上角。 我试图通过如下描述的附加翻译来解决这个问题: 代码应转换标签,使其像右下角的锚点一样工作。这不起作用,因为在我执行代码时,标签的边界框是[minX:0.0,minY:0.0,minZ:0.0,宽度:-1.0,高度:-1.0,深度:0.0,maxX:-1.0,maxY:-1.0,maxZ:0.0

  • 本文向大家介绍HTML5 / JS存储事件处理程序,包括了HTML5 / JS存储事件处理程序的使用技巧和注意事项,需要的朋友参考一下 仅当存储事件由另一个窗口触发时,才会触发存储事件处理程序。您可以尝试运行以下代码:

  • 在hello-koa工程中,我们处理http请求一律返回相同的HTML,这样虽然非常简单,但是用浏览器一测,随便输入任何URL都会返回相同的网页。 正常情况下,我们应该对不同的URL调用不同的处理函数,这样才能返回不同的结果。例如像这样写: app.use(async (ctx, next) => { if (ctx.request.path === '/') { ctx.