Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 没有使用Jquery就没有缓存脚本_Javascript_Html_Internet Explorer 8_Userscripts_No Cache - Fatal编程技术网

Javascript 没有使用Jquery就没有缓存脚本

Javascript 没有使用Jquery就没有缓存脚本,javascript,html,internet-explorer-8,userscripts,no-cache,Javascript,Html,Internet Explorer 8,Userscripts,No Cache,您好,我正在尝试创建一个脚本,在任何网页中插入一个元标记以强制不缓存 目前这是我的代码,我不想使用Jquery(如中所示) var MAXlen=document.getElementsByTagName('head')[0].childNodes.length; //获取头部子节点的长度。 而(MAXlen--) { document.getElementsByTagName('head')[0].childNodes[MAXlen+1]=document.getElementsByTagNa

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

目前这是我的代码,我不想使用Jquery(如中所示)

var MAXlen=document.getElementsByTagName('head')[0].childNodes.length;
//获取头部子节点的长度。
而(MAXlen--)
{
document.getElementsByTagName('head')[0].childNodes[MAXlen+1]=document.getElementsByTagName('head')[0].childNodes[MAXlen];
//之后将每个节点存储在一个位置。
如果(MAXlen==0)
document.getElementsByTagName('head')[0]。childNodes[0]。innerHTML='';
//将此hmtlcode放入head的第一个元素中。
打破
}

我会用。。。不带JQuery的预结束:

parent.insertBefore(child, parent.firstChild);
parentNode.insertBefore(newChild,refChild)

将节点
newChild
作为父节点的子节点插入现有子节点
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);
  • 首先,将meta标记构建为节点
  • 然后,将head标记捕获为变量
  • 使用变量,在第一个子节点之前插入节点
  • 评论

    • 测试功能在铬
    • 在IE8中测试功能,控制台警告:“此页面上的代码禁用了反向和正向缓存”

    欢迎来到SO。你到底有什么问题?你有错误吗?如果是这样,请提供相关信息。正确的想法;没有足够详细的代码来帮助新手操作。精确显示如何添加元标记。(这并不是说这种方法在大多数浏览器中都能工作;对IE8不太确定(也不关心IE8)。)添加了代码来说明这种方法的工作原理。在Chrome上测试。代码正确,但要注意两个重要的警告:(1)问题是关于IE8的。如果能在Chrome上运行,这并不一定重要。(2) 您可以使用JS添加
    标记,但是(?大多数?)浏览器实际上不会解析以这种方式添加的
    标记。IE8可能是个例外;怀疑它。在IE8中测试功能。。。“此页面上的代码禁用了反向和正向缓存”感谢您的检查和提醒。那么,IE8似乎可以解析动态添加的
    标记。干得好
    var meta = document.createElement('meta');
    meta.httpEquiv = "Pragma";
    meta.content = "no-cache";
    var head = document.getElementsByTagName('head')[0]
    head.insertBefore(meta, head.firstChild);