JQuery: Javascript throws Ошибка "Операция небезопасна" при установке значения
Я пытаюсь найти резервное решение для браузеров, которые не интерпретируют атрибут placeholder для элементов ввода.
У меня этот простой jQuery Script, но он вызывает ошибку
SecurityError: "The operation is insecure.
this.value = val;"
Здесь мой script:
$('document').ready(function(){
$('input').each(function() {
if ($(this).val() === '' || $(this).val() === undefined) {
$(this).val($(this).attr('placeholder'));
}
});
});
Любые идеи, что я могу сделать? Или что я делаю неправильно? Или что эта ошибка означает?
Это происходит в Firefox, еще не проверял его в других браузерах.
Ответы
Ответ 1
Я только что исправил аналогичную проблему в моем проекте. Оказалось, что я пытаюсь установить значение входа <input type="file" ...>
. Кажется, что вы столкнулись с одной и той же проблемой, потому что вы выбираете все входы документа независимо от их типа.
Если у вас установлен firebug, попробуйте найти вход, который вызывает эту ошибку, вставив команду log
, прежде чем пытаться изменить входное значение.
$('document').ready(function(){
$('input').each(function() {
if ($(this).val() === '' || $(this).val() === undefined) {
// Log goes here
window.console.log(
'There is an input without a value!',
this);
$(this).val($(this).attr('placeholder'));
}
});
});
Ответ 2
У меня было небезопасное предупреждение в сочетании с функцией antoher.
Причина просто заключалась в том, что библиотечная функция вызывалась с массивом, заданным как параметр, но ожидала элемент (dom).
Результат был ожидаемым, но я уверен, это не будет ни в коем случае.
Поэтому проверьте, не хотят ли типы ваших переменных принадлежать вам (или другой стороне).