IE6 - IE8 ошибка JavaScript ... помочь? - PullRequest
1 голос
/ 06 июля 2011

Я делаю букмарклет для просмотра файлов 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 голосов
/ 06 июля 2011

Я не получаю неопределенное содержимое строки ошибка в 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);
...