IE6 - IE8 javascript错误...帮忙?

时间:2011-07-06 04:32:38

标签: javascript internet-explorer bookmarklet

我正在制作一个书签来查看任何网站的cookie,它适用于IE9 +,firefox,chrome,safari等的每个浏览器。我不关心IE5.5,所以主要问题是javascript错误在IE6上 - IE8。他们从以下错误说“未终止的字符串常量”:

javascript:if(document.getElementById('cookieelement')!=null){
  document.body.removeChild(document.getElementById('cookieelement'));
} else {
  document.body.innerHTML='<div style="font-size:10pt;color:#000000;padding:10px;border:solid 1px #000000;background:white;display:block;position:fixed;top:0px;z-index:999999999999;" id="cookieelement"></div>'+document.body.innerHTML;
  cookieelement=document.getElementById('cookieelement');
  cookies=document.cookie.split(';');
  cookiehtml=('<table style="border-collapse:collapse;border:Solid 1px #000000;">\n');
  for(i=0;i<cookies.length;i++){
    cookie=cookies[i];
    name=cookie.substr(0,cookie.indexOf('='),cookie.length);
    val=cookie.substr(cookie.indexOf('=')+1,cookie.length);
    cookiehtml+=('\t<tr>\n\t\t<td style="padding:3px;text-align:right;padding-right:10px;border:Solid 1px #000000;">'+name+'</td>\n\t\t<td style="padding:3px;text-align:left;border:Solid 1px #000000;">'+val+'</td>\n\t</tr>\n');
  }
  cookiehtml+=('</table>');cookieelement.innerHTML=cookiehtml;
}
void(0);

1 个答案:

答案 0 :(得分:0)

我在IE7中没有收到未终止的字符串内容错误。 但是,我得到了一个同样神秘的对象不支持属性或方法消息。

这可能是因为在IE中可以通过全局id访问元素。这意味着如果您有一个标识为abcd的元素,则可以通过document.abcd全局访问该元素。这不是标准的,但可以在IE中使用。

尝试将cookie元素变量的名称更改为其他名称。我将其更改为cookieElement1,瞧,它有效:

javascript: if(document.getElementById('cookieelement')!=null){   document.body.removeChild(document.getElementById('cookieelement')); } else {   document.body.innerHTML='<div style="font-size:10pt;color:#000000;padding:10px;border:solid 1px #000000;background:white;display:block;position:fixed;top:0px;z-index:999999999999;" id="cookieelement"></div>'+document.body.innerHTML;   cookieelement1=document.getElementById('cookieelement');   cookies=document.cookie.split(';');   cookiehtml=('<table style="border-collapse:collapse;border:Solid 1px #000000;">\n');   for(i=0;i<cookies.length;i++){     cookie=cookies[i];     name=cookie.substr(0,cookie.indexOf('='),cookie.length);     val=cookie.substr(cookie.indexOf('=')+1,cookie.length);     cookiehtml+=('\t<tr>\n\t\t<td style="padding:3px;text-align:right;padding-right:10px;border:Solid 1px #000000;">'+name+'</td>\n\t\t<td style="padding:3px;text-align:left;border:Solid 1px #000000;">'+val+'</td>\n\t</tr>\n');   }   cookiehtml+=('</table>');cookieelement1.innerHTML=cookiehtml; } void(0);