您可以设置自己的窗口名称,确切的语法现在让我无法理解,但是您可以使用当前时间和会话 id 在窗口加载时创建一个唯一的 id,然后使用该 id
这将与您在 javascript window.open() 函数中设置名称的方式相同,(但您可以对自己执行此操作,而不是新窗口)
谷歌搜索显示:
self.window.name = myclass.getUniqueWindowId(thisSession);
更新
关于您需要将其从刷新保存到刷新,我做了一些测试,它看起来将其从刷新保存到刷新。使用 Firefox 3,在初始加载时,窗口名称为空白,并反复按 CTRL+R,然后填充窗口名称。然后我注释掉了设置名称代码并重新加载,它仍然保留了名称。
<script type="text/javascript">
alert( self.window.name );
self.window.name = "blah";
</script>
更新
我必须注意到下面关于 jQuery 的 'jquery-session' 插件的评论,它确实有效并且提供的方式比这里讨论的要多。
虽然,还应该明确表示它依赖于 HTML5 的 Web 存储,旧 IE版本不支持。
企业仍然严重依赖 IE 7(在巴西这里是“及以下”)。
基于self.window.name
,所有不符合 HTML5 的解决方案,我提供以下代码片段作为跨浏览器解决方案:
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script language="javascript" type="text/jscript">
//----------------------------------------------------------------------
//-- guarantees that window.name is a GUID, and that it would
//-- be preserved whilst this window's life cicle
//----------------------------------------------------------------------
//-- window.name will be set to "GUID-<SOME_RANDOM_GUID>"
//----------------------------------------------------------------------
$(window).load(
function () {
//----------------------
var GUID = function () {
//------------------
var S4 = function () {
return(
Math.floor(
Math.random() * 0x10000 /* 65536 */
).toString(16)
);
};
//------------------
return (
S4() + S4() + "-" +
S4() + "-" +
S4() + "-" +
S4() + "-" +
S4() + S4() + S4()
);
};
//----------------------
if (!window.name.match(/^GUID-/)) {
window.name = "GUID-" + GUID();
}
}
) //--------------------------------------------------------------------
</script>
我在这里找到了 GUID 函数(为此我提出了一些代码清理)。