window.toString.call не определен в IE8

Я думаю, что ключ в значительной степени в этом утверждении, которое я нашел здесь в FAQ .

У меня вчера работала быстрая установка через Интернет, но сегодня она больше не работает. Что случилось?

Разрешение на установку приложений непосредственно на телефон необходимо обновлять раз в несколько дней. Вернитесь к приложению «Быстрая установка через Интернет» на своем телефоне и нажмите кнопку, чтобы снова дать нам разрешение. Мы работаем над будущим обновлением, которое при необходимости автоматически обновит этот параметр.

Полагаю, это очень похоже на то, что делает Google в переключателе уничтожения. Я предполагаю, что переключатель kill - это приложение на моем устройстве, скрытое от меня. Когда Google хочет удалить приложение, оно автоматически удаляет его, не спрашивая у нас разрешения. Я очень уверен, что это дыра в безопасности их создания. Теперь нам просто нужно это выяснить ... = D

7
задан Robert Koritnik 3 November 2009 в 18:09
поделиться

2 ответа

окно является объектом хоста, а Спецификация языка ECMAScript (3-е издание) не требует, чтобы объекты хоста были производными от собственного Object объект. В IE (и, вероятно, в некоторых других браузерах) объекты хоста отсутствуют, поэтому они не поддерживают какие-либо собственные методы или свойства (хотя у них могут быть методы или свойства с такими же именами, что и собственные методы или свойства, доступные для скрипты).

Если все, что вам нужно, это получить собственный метод toString языковой реализации по умолчанию, тогда вам следует использовать Object.prototype.toString.call ("") .

15
ответ дан 6 December 2019 в 12:52
поделиться

NickFitz верен, метод toString на главном объекте, который вы обнаружите, что если бы вы сделали

alert (window);

, вы бы получили текст [object]

Все, что использовал бы метод toString () javascript, используемый в ваших примерах, - это создать строка из строки, поэтому правильный способ сделать то, что вы пытаетесь, это;

var a =new String ("");

или просто

var b = "";

, или если вы действительно хотите быть глупым;

var b = "".toString();
1
ответ дан 6 December 2019 в 12:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: