Мне было интересно, могу ли я запустить блок кода (который включает в себя для циклов и операторов if) в функции javascript: void() через поле URL.Могу ли я запустить произвольный код javascript в функции javascript: void(), используя адресную строку браузера?
ответ
Да, вы можете запускать заявления в поле url.
так:
javascript:if(2>1){alert('2 > 1');}
void
не является функцией, это оператор. Это означает, что вы можете использовать его с круглыми скобками или без них. Все, что он делает, это выражение, следующее за ним, возвращает undefined
. В случае навигации возвращение undefined
предотвращает выход из выражения из-за того, что вы удаляете навигацию от страницы.
Вы можете запустить любой код JavaScript через адресную строку некоторых браузеров, независимо от того, используете ли вы оператор void
или нет. void
просто делает это безопасным, не перемещаясь. Популярная альтернатива void
это обернуть свой код в себя выполнение анонимной функции:
javascript:(function() { alert("hello"); })();
Часто фрагменты кода, как это будут сохранены в качестве закладки, так что они могут работать по нажатию на ссылку в закладки или панель избранного на любой странице. Эти фрагменты называются Bookmarklets.
Протокол javascript:
был отключен для ввода URL-адреса в некоторых новых браузерах, в первую очередь Firefox (since 6.0). Это прежде всего для предотвращения того, что пользователи становятся объектами самосинхронных атак, когда они убеждены потенциальным злоумышленником вставить URL-адрес javascript:
в адресную строку. В Google Chrome и последних версиях Internet Explorer часть javascript:
удаляется из вставленного кода. Однако эти фрагменты по-прежнему работают как букмарклеты во всех вышеперечисленных браузерах.
Вы можете узнать больше о void
в другом ответе, который я дал некоторое время назад: Help me understand javascript:void(null).
- 1. Как скрыть адресную строку браузера JavaScript?
- 2. Имитировать адресную строку браузера с Javascript
- 3. Могу ли я с javascript заблокировать адресную строку браузера в конкретном домене?
- 4. Включено javascript браузера используя код
- 5. запустить код Javascript, используя php
- 6. Как скрыть адресную строку браузера с помощью JavaScript
- 7. Могу ли я запустить javascript-код arcgis в Arcgis Desktop
- 8. Могу ли я сделать адресную ссылку активировать javascript?
- 9. Как отключить адресную строку URL-адреса, используя javascript или jquery
- 10. Как скрыть адресную строку на любой странице браузера, используя javascript? не на новом windows.open
- 11. Есть ли способ изменить адресную строку браузера, не обновляя страницу?
- 12. Можно ли отправить запрос службе WCF в адресную строку браузера?
- 13. phonegap (cordova) как скрыть адресную строку браузера
- 14. Как я могу запустить значение textarea в код JavaScript?
- 15. Загрузка удаленных файлов JavaScript через адресную строку
- 16. Скрыть адресную строку браузера на BlackBerry OS6
- 17. хранить произвольный код JavaScript в строковой переменной
- 18. Возможно ли добавить код браузера в javascript
- 19. Как я могу вызвать функцию, используя строку в javascript?
- 20. Как скрыть адресную строку мобильного браузера?
- 21. Как я могу запустить согласованную строку как переменную в Javascript?
- 22. Запустить Javascript, используя onclick?
- 23. Могу ли я запустить свой собственный javascript на (загруженной) странице?
- 24. Javascript: всегда показывать адресную строку Chrome
- 25. Могу ли я использовать объект в параметре функции в javascript?
- 26. Невозможно вставить javascript команды в адресную строку (т.е.10)
- 27. Откройте окно браузера, используя javascript?
- 28. Является ли код браузера «кешем» javascript?
- 29. Могу ли я запустить произвольный скрипт Oracle SQL через ODP.NET?
- 30. Как я могу запустить javascript css action?
Он не будет работать с адресной строкой (протестирован в IE 11 и Firefox 27.0.1). Вы должны сохранить его в качестве закладки, чтобы он работал. – Nolonar
@Nolonar: Мне не удалось подтвердить ваш комментарий для IE 11, так как я сейчас уезжаю и у меня только Linux на моем ноутбуке. Я потратил около 10 минут на поиск в Интернете и могу найти ссылки, которые указывают на то же поведение, что и Chrome (где протокол javascript: 'разделяется при вставке). Однако я смог проверить это в Firefox. Я обновил ответ своими выводами. –