不使用 Jquery 的无缓存脚本
no-cache script without using Jquery
您好,我正在尝试创建一个脚本,该脚本会在任何网页中插入一个 元标记以强制无缓存 。
目前这是我的代码,我不想使用 Jquery(如 Script to force IE8 cache behaviour 所示)。
var MAXlen = document.getElementsByTagName('head')[0].childNodes.length;
//Get the length of childnodes of head.
while(MAXlen--)
{
document.getElementsByTagName('head')[0].childNodes[MAXlen+1] = document.getElementsByTagName('head')[0].childNodes[MAXlen];
//store every node one place after.
if(MAXlen == 0)
document.getElementsByTagName('head')[0].childNodes[0].innerHTML = '<META HTTP-EQUIV="Pragma" CONTENT="no-cache">';
//place this hmtlcode into the first element of head.
break;
}
我会在没有 JQuery 的情况下使用 ... 前置:
parent.insertBefore(child, parent.firstChild);
parentNode.insertBefore(newChild, refChild);
将节点 newChild
作为 parentNode
的 child 插入现有 child 节点 refChild
之前。 (Returns newChild
.)
如果refChild
为空,则在children的列表末尾添加newChild
。等效地,并且更具可读性,使用 parentNode.appendChild(newChild)
.
在这种情况下,您不需要像您提供的代码那样进行循环。
更新:
用你的代码试试这个...
var meta = document.createElement('meta');
meta.httpEquiv = "Pragma";
meta.content = "no-cache";
var head = document.getElementsByTagName('head')[0]
head.insertBefore(meta, head.firstChild);
- 首先,将元标记构建为节点。
- 然后,捕获head标签作为变量。
- 使用变量,在第一个child之前插入节点。
评论:
- 已在 Chrome.
中测试功能
- 已在 IE8 中测试功能并带有控制台警告:"The code on this page disabled back and forward caching"
您好,我正在尝试创建一个脚本,该脚本会在任何网页中插入一个 元标记以强制无缓存 。
目前这是我的代码,我不想使用 Jquery(如 Script to force IE8 cache behaviour 所示)。
var MAXlen = document.getElementsByTagName('head')[0].childNodes.length;
//Get the length of childnodes of head.
while(MAXlen--)
{
document.getElementsByTagName('head')[0].childNodes[MAXlen+1] = document.getElementsByTagName('head')[0].childNodes[MAXlen];
//store every node one place after.
if(MAXlen == 0)
document.getElementsByTagName('head')[0].childNodes[0].innerHTML = '<META HTTP-EQUIV="Pragma" CONTENT="no-cache">';
//place this hmtlcode into the first element of head.
break;
}
我会在没有 JQuery 的情况下使用 ... 前置:
parent.insertBefore(child, parent.firstChild);
parentNode.insertBefore(newChild, refChild);
将节点 newChild
作为 parentNode
的 child 插入现有 child 节点 refChild
之前。 (Returns newChild
.)
如果refChild
为空,则在children的列表末尾添加newChild
。等效地,并且更具可读性,使用 parentNode.appendChild(newChild)
.
在这种情况下,您不需要像您提供的代码那样进行循环。
更新:
用你的代码试试这个...
var meta = document.createElement('meta');
meta.httpEquiv = "Pragma";
meta.content = "no-cache";
var head = document.getElementsByTagName('head')[0]
head.insertBefore(meta, head.firstChild);
- 首先,将元标记构建为节点。
- 然后,捕获head标签作为变量。
- 使用变量,在第一个child之前插入节点。
评论:
- 已在 Chrome. 中测试功能
- 已在 IE8 中测试功能并带有控制台警告:"The code on this page disabled back and forward caching"