没有使用Jquery的no-cache脚本

时间:2015-01-01 15:37:43

标签: javascript html internet-explorer-8 userscripts no-cache

您好我正在尝试创建一个脚本,在任何网页中插入元标记以强制禁止缓存

目前这是我的代码,我不想使用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;
}

1 个答案:

答案 0 :(得分:1)

我会在没有JQuery的情况下使用... prepend:

parent.insertBefore(child, parent.firstChild);

parentNode.insertBefore(newChild,refChild);

在现有子节点newChild之前插入节点parentNode作为refChild的子节点。 (返回newChild。)

如果refChild为空,则会在子项列表的末尾添加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);
  1. 首先,将元标记构建为节点。
  2. 然后,将head标签捕获为变量。
  3. 使用该变量,在第一个子节点之前插入节点。
  4. <强>评论

    • 在Chrome中经过测试功能。
    • 在IE8中通过控制台警告测试功能:“此页面上的代码禁用了后退和前进缓存”