JQuery 将模糊的浏览器标题设置为在没有焦点的情况下工作

JQuery set browser title on blur to be working widthout focus

美好的一天,

在 Whosebug 上找到的一段代码的帮助下,我设法拼凑了我自己版本的模糊标题更改脚本。

我面临的唯一问题是当我加载页面时我没有点击页面本身的任何地方{因此我没有 'focus'} 脚本不起作用。

我添加了一段代码,其中复制了焦点方法并将其更改为加载。

$(function () {
    var message = '( ! ) :+Do not forget your reservation+:';
    var original = $('title').text();

    $(window).load(function () {
        console.log('window focussed');
        if (original) {
            document.title = original;
        }
    }).focus(function () {
        console.log('window focussed');
        if (original) {
            document.title = original;
        }
    }).blur(function () {
        console.log('window blurred');
        var title = $('title').text();
        if (title != message) {
            original = title;
        }
        document.title = message;
    });
    console.log('current title : ' + original);
});

但是这并不能完全解决我的问题。 此时我需要单击另一个选项卡,返回并再次单击另一个选项卡。所以这是毫无意义的。

我缺少什么才能让这个脚本从一开始就正常工作?


解决方法 非常感谢:@Brian

添加尾随 focus(); 就成功了。 (而不是福特的那个..很棒,但在这里不起作用

在链的末尾添加一个 .focus() 调用以强制加载一个 focus 事件:

$(function () {
    var message = '( ! ) :+Do not forget your reservation+:';
    var original = $('title').text();

    $(window).load(function () {
        console.log('window focussed');
        if (original) {
            document.title = original;
        }
    })
    .focus(function () {
        console.log('window focussed');
        if (original) {
            document.title = original;
        }
    })
    .blur(function () {
        console.log('window blurred');
        var title = $('title').text();
        if (title != message) {
            original = title;
        }
        document.title = message;
    })
    .focus(); // add this line
    console.log('current title : ' + original);
});