#javascript #html
#javascript #HTML
Вопрос:
Я хочу отключить функцию JavaScript в HTML-коде онлайн-сайта. По сути, функция проверяет, выбран ли переключатель, прежде чем сможет анализировать данные из тегов HTML.
Я думаю о нескольких вариантах:
- отключите функцию, поэтому весь JavaScript будет проигнорирован.
- измените функцию с display=»block» на display=»none».
- напишите функцию для создания флажка с переключателем и притворитесь той же кнопкой.
- если ничего из вышеперечисленного невозможно, сохраните страницу и проанализируйте данные в автономном режиме.
Поскольку я новичок в JavaScript, я высоко ценю ваш опыт в том, как и как подойти к этой проблеме.
Вот часть функции:
<!doctype html>
<html>
....
<script>
function disable_content()
{
if(!isRadioButtonselected('radio'))
{
document.getElementById('spamOverlayError').style.display="block";
document.getElementById('spam_error').innerHTML="Please provide a flag"
return false;
}
if (!(/^w ([.-]?w )*@w ([.-]?w )*(.w{2,4}) $/.test(document.getElementById('rec_email').value)))
{
document.getElementById('spamOverlayError').style.display="block";
document.getElementById('spam_error').innerHTML ="Please fill valid email ID.";
return false;
}
....
}
....
function isRadioButtonselected(radioGrpName)
{
var radios = document.getElementsByName(radioGrpName);
var i;
for (i=0; i<radios.length; i=i 1 ){
if (radios[i].checked){
return true;
}
}
return false;
}
return "";
}
</script>
<body>
....
<div class="flag_this" onClick="display_pop_up('light_spam');document.getElementById('spamOverlayError').style.display='none';">
<input type="hidden" name="PageReload" value="YES" id="PageReload">
....
</body>
</html>
Комментарии:
1. Каковы условия для отключения функции? Она всегда должна быть отключена?
2. Если вы объявляете две функции с одинаковым именем, выигрывает вторая, поэтому, если вы хотите заменить isRedioButtonselected , просто объявите другую функцию с тем же именем, которая делает все, что вы хотите, например, чтобы она всегда возвращалась
true
, помещаласьfunction isRadioButtonselected(){return true}
после первого объявления или инициализации.3. Кстати, какой именно фрагмент кода вы пытаетесь отключить или изменить?
4. Спасибо, РобГ, я попытался переписать функцию, как вы предложили, но это не сработало. Я хотел бы разблокировать отображаемое содержимое (style.display=»block»;) в функции на стороне сервера. Я могу просматривать содержимое, но поскольку эта функция проверяет, выбран ли переключатель на другой странице, когда я пытаюсь автоматически сканировать теги HTML, она возвращает null.
5. evuez, функция запущена на сайте сервера. Это не обязательно должно быть отключено все время. Мне просто нужно отключить ее, чтобы проанализировать данные.
Ответ №1:
Заметил, что это старый пост. Если это не решено, вы можете попробовать решение RobG, например:
...
function disable_content()
{
return false;
}
</script>
...
Более чистым подходом будет поиск по вашей HTML-странице, чтобы узнать, какая часть вызывает эту функцию «disable_content ()».
Если это в HTML, как:
<button onClick="return disable_content()">Blah, blah</button>
Вы можете очистить его, чтобы быть похожим:
<button>Blah, blah</button>
Если это в Javascript, например:
var isContentDisabled = disable_content();
Вы можете удалить или закомментировать строку Javascript и следующие ссылки на нее, если таковые имеются. Используйте F12 developer tool (Chrome / IE) или Firebug (Firefox) для отладки, чтобы убедиться, что ваши изменения не нарушают что-то еще.
Ответ №2:
Вы можете сделать это с помощью jquery:
$('selector').removeAttr('onclick');
Это приведет к удалению атрибута onclick.
Комментарии:
1. OP не использовал тег jQuery, в опубликованном коде нет jQuery, и неясно, что это то, что хочет сделать OP. Кстати, не мой голос против.
2. Спасибо, ребята, в коде есть функция jQuery, которая, я не уверен, оказывает ли она основное влияние на скрытие содержимого HTML от синтаксического анализа.
3. функция getHighTextUnEscaped() { return » ; } jQuery(документ). готово(функция(){ jQuery(‘#comments’).click(функция(){ jQuery(‘.popup_overlay’).show(); jQuery(‘.popup_wrapper’).show(); }); jQuery(‘#close_popup’).click(функция(){ jQuery(‘.popup_overlay’).hide(); jQuery(‘.popup_wrapper’).hide(); }); if(getHighTextUnEscaped()){ var hightext='»‘ getHighTextUnEscaped() ‘»‘; var high_n = новый массив(); hightext =html_entity_decode(высокий текст);