jquery – IE标题更改为如果该页面有一个url与’#’,并有flash/swf嵌入它

前端之家收集整理的这篇文章主要介绍了jquery – IE标题更改为如果该页面有一个url与’#’,并有flash/swf嵌入它前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
问题是,如果IE(6.0)在其中嵌入了Flash内容,并且该页面的URL在其中存在某个位置,则当加载Flash内容时,或者用户与之交互时,窗口,更改哈希后的内容

例如http://adobeflashwebsite.com/index.html#somediv

然后,页面标题会更改为“somediv”,即用户将点击Flash内容的时刻,或者即使Flash内容加载的时刻也会有很多次。

这只发生在IE。

下面是我面临的一个非常具体的例子:

以下是我面临的环境问题:

> Shinding引擎显示一个iGoogle喜欢的页面
> Sammy.js
> Gadgets渲染flash / swf

这里的问题是,无论我尝试嵌入Flash哪个插件,我最终都有以下问题

>当flash完全加载时,它会附加像#tab / xx这样的东西,其实际上是sammy使用的字符串来存储页面中的最后一个导航历史
>当用户开始与Flash进行交互时,标题被完全删除,只有#tab / xx保持为标题
>当一个小工具被刷新,即使这样的问题就像#2。

有人建议,可能是什么问题?
很可能是与sammy.js相关,因为iGoogle没有这个问题。

解决方法

以下解决方法是唯一的方法(直到现在),我最接近解决问题:
var isIE11OrGreater = !!(navigator.userAgent.match(/Trident/) && !navigator.userAgent.match(/MSIE/));
if (!isIE11OrGreater) {
    var originalTitle = document.title.split("#")[0];    
    document.attachEvent('onpropertychange',function (evt) {
       if(evt.propertyName === 'title' && document.title !== originalTitle) {
        setTimeout(function () {
           document.title = originalTitle;
        },1);
    }
});

}

//Incase the developer wants to change the title manually,instead of directly using     //document.title=newtitle,he will need to use changeTitle(newTitle)
    function changeTitle(newTitle)
    {
        originalTitle = newTitle;
        document.title = newtitle;
    }
原文链接:https://www.f2er.com/jquery/183299.html

猜你在找的jQuery相关文章