问题是,如果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; }