Как удалить скрипт из памяти браузера, не перегружая страницу?
то, даже если удалить вышеуказанную строчку (через removeChild ), в памяти браузера он все равно остается (потому, что способен выполняться при вызове).
Добавлено через 4 минуты
Только, пожалуйста, не надо (как на других форумах) советовать, как очистить кэш браузера. Ибо имеется в виду не кэш, а основная (оперативная) память, в которой находится скрипт. Очистка кэша не дает никакого результата.
Хотелось бы, по возможности, без использования java-апплетов.
Добавлено через 4 минуты
Если уж не удалить из оперативной памяти (да, я понимаю, это не С), то, хотя бы — как-то заблокировать возможность выполнения одного или нескольких скриптов на странице — при помощи соответствующего скрипта, который подгружается на страницу, например, с сервера.
Как поменять url, не перегружая страницу.
Всем привет. В CMS Kayako 4, в админке, загружается один раз страница(верхнее и боковое меню), и.
Как изменить адрес, не перегружая страницу
Доброго времени. Есть документ по адресу http://example.com/blablabla/aaa. Как перейти на.
Как удалить стартовую страницу из браузера
Помогите удалить 2343as12.ru при запуске браузера
Как обновить контент не перегружая всю страницу?
Мне нужно в статической странице что бы обновлялся определенный блок. Например как в.
Htext, браузер не выделяет для отдельного скрипта свою собственною область или окружение, они конечно могут загружаться и запускаться раньше или позже, но, так или иначе, все выполняется в одном потоке и в одной глобальной области как один единственный скрипт, за исключением веб-воркеров.
Единственно, что вы можете сделать в данном случае это написать код в 1.js в виде именной функции, и когда нужно очистить переобъявить функцию
window.test =function () { return 5; }; alert (test()); //переобъявляем window.test =function () { return 1; }; alert (test());
Htиext, мне ваш вопрос кажется несколько странным
код, прописанный в скриптовом блоке (или в подключаемом js-файле) — он бывает как бы двух видов:
1) либо это набор команд в глобальной области видимости, которые сразу же исполняются, например, var q = 123; alert (q);
2) либо это определение функции (или нескольких функций), которые будут исполнены только тогда, когда эти функции будут вызваны
в первом случае ничего блокировать явно не надо, ибо, как говорится, «поздно пить боржоми, когда почки отвалились» — прописанные команды уже один раз выполнились
во втором случае блокировка, имхо, тоже не требуется — достаточным будет просто не вызывать функции, которые были определены, а уж если, допустим, требуется «очистить оперативку» от больших по количеству кода функций, то просто переопределите их на коротенькие (или вообще пустые) функции
или я что-то совсем не так понимаю и вы в понятие «блокировка» вкладываете какой-то иной смысл?
Как снести все скрипты на странице?
После чего спокойно загружал на станицу уже свое содержимое, будучи уверенным, что скрипты сайта мне уже ничего не поломают. К сожалению, оказалось, что в браузере Firefox это не работает =( Может подскажет кто решение для Firefox?
Средний 6 комментариев
WbICHA, неа, не помогает. Все равно пишет, что это небезопасно и не дает. При этом если в консоли ручками вводить все норм, а вот через контент-скрипт уже хренушки.
profesor08, полагаю через расширение заменить интерфейс какого-то сайта на свой, или что-то в этом роде.
profesor08, залить на целевую страницу своего бота, бот автоматизирует рутинные операции на сайте и создает удобный лично мне интерфейс. На хроме никаких проблем с этим нет, но вот решил я переписать некоторые свои расширения под Firefox и столкнулся с такой проблемой.
P. S. Я почему свой код загружаю именно на страницу сайта — это чтобы при запросах на API этого сайта Referer был правильный и CORS не мешал. Однако это действительно только для Google Chrome. Я заметил что в Firefox можно спокойно редактировать исходящие и входящие заголовки, а значит по идее мне ни что не мешает запускать свой код не на целевой странице, а просто тупо с новой вкладки. Наверное так и буду делать, просто придется много чего переписать.
Запретить выполнение JS кода (как инлайн, так и загружаемого) можно с помощью Content Security Policy (CSP) заголовков, как это делают NoScript расширения, в частости, uBlock Origin.
Хотя не уверен, что в таком случае можно выполнить свой код в контексте веб страницы (не в в контексте контент скрипта), хотя, вероятно, можно разрешить сделать это, указав hash/nonce своего кода, в качестве разрешенного к выполнению (опять же — в CSP заголовке).
document.wrappedJSObject.write(''); document.close();
Если запустить метод из контент-скрипта в своем расширении еще до начала отрисовки DOM, то это позволяет предотвратить запуск скриптов сайта, а далее на страницу уже можно спокойно залить свое содержимое.
Если это позволит подчистить html от лишнего, то хорошо, иначе придется смириться с тем, что все скрипты идущие со страницей будут выполнены.
P.S. На выполнение скриптов можно забить и построить собственную html страницу. Которая никак не будет с ними взаимодействовать.
Не совсем понимаю, точнее совсем не понял. Что вы предлагаете? Просто удалить все теги script со страницы? Так это не сработает. Уже запущенные таймеры, обработчики, анонимные функции останутся работать, даже если удалить код, который их вызвал.
Надим Закиров, откуда такие выводы? В документации все четко обозначено. Если не подходит, тогда только останется смириться и пересобрать html.
How to Remove a Script from the DOM in JavaScript
There are plenty of times I find myself looking to remove a script from the DOM. Some common reasons to remove scripts from the DOM include:
- The script is execution blocking
- The script is no longer valid and points to an invalid resource
- Duplicate scripts exist on the page and one has to be removed
- Removing scripts if a response is empty
- A script exists on the page and you don’t have access to the source code so you need to dynamically remove it via JavaScript
So with these use cases and others in mind, how can you remove a script from the DOM in JavaScript?
We can remove a script from the DOM by scanning through all scripts on the page, getting the parent node of that script, and then finally removing the child of that parent node.
Let’s say we have a script on the page like so:
We want to scan through all possible scripts with type application/javascript on the page:
const scriptList = document.querySelectorAll("script[type='text/javascript']")
This returns us a NodeList of scripts:
We need to convert this NodeList to an array in order to iterate through it:
const convertedNodeList = Array.from(scriptList)
Now, lets use .find() to get our specific script by its id:
const testScript = convertedNodeList.find(script => script.id === "my-test-script")
Here is the interesting part. We want to remove this script by self referencing it from its own parentNode .
testScript.parentNode.removeChild(testScript)
And there you have it! This is a nice and concise way of removing a script from the DOM. I hope this helped.
How to use Reactjs with Moment.js (ES7)
How to create a new line in JSX and Reactjs
© 2023 Proudly published with Gatsby
PROWARE tech
This simple code will replace script tags and everthing contained between them with an empty string. The exception is when there is a string contained within the script tag that has the text somewhere in it. This will break it, but some careful programming can overcome this.
var html = `This is a test
The script tag should have been removed!
`; var scriptRegex = /