Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Изменение части кода java функции на открытой странице. (https://javascript.ru/forum/css-html-internet-explorer/46148-izmenenie-chasti-koda-java-funkcii-na-otkrytojj-stranice.html)

AlexVong 30.03.2014 16:33

Изменение части кода java функции на открытой странице.
 
Подскажите пожалуйста, есть открытая страница в коде которой такие строки:
Код:

<form method='get' name='func_menu' class='func_menu'></form>
<script LANGUAGE="JavaScript" src="./js/grup.js"></script>
<LINK rel='STYLESHEET' TYPE='text/css' HREF='./css/m_ab.css'>

Возможно? и если да... то как? изменить одну строку кода в grup.js, чтобы изменения работали до обновления страницы?

Aetae 30.03.2014 16:41

Строку именно в тамошнем grup.js - нет. Функцию - да. Браузер работает не с текстом, а javascript потоком.
Ну и можно на стадии загрузки вообще подменить grup.js на отредактированную копию, но это для особых случаев.

AlexVong 30.03.2014 17:17

Aetae,
Спасибо!
А можно чуть подробнее про подмену... Заранее спасибо.

Aetae 30.03.2014 17:28

Каждый случай рассматривается отдельно. Нюансов куча.

AlexVong 30.03.2014 18:32

А если исправить эту функцию, то как ее запустить чтобы она была применима к открытой странице и у нее был доступ к переменным из других файлов js открытых этой же страницей?

Aetae 30.03.2014 18:41

Поток js един независимо от кол-ва подключённых js файлов. Если функция объявлена глобально, то её можно просто в лоб перезаписать.
function Func(){/*старый код*/};
Func = function(){/*новый код*/};

Сделать это можно через консоль(ctrl+shift+i / F12), запилив букмарклет или userscript.

AlexVong 30.03.2014 19:30

Aetae,
Спасибо!!! Буду пробывать...

AlexVong 31.03.2014 09:24

При выполнении в консоли -

function Func(){/*старый код*/};
Func = function(){/*новый код*/};

пишет...
"Невозможно присвоение результату функции"

А можно в поток записать эту же функцию с изменениями только с другим именем?

Aetae 31.03.2014 11:36

0_о? Это что за браузер?
function Func(){/*старый код*/};
alert(Func.toString())

Func = function(){/*новый код*/};
alert(Func.toString())

AlexVong 31.03.2014 12:06

браузер IE8.
Запускаю код в F12-консоль, всплывает первый алерт (с первоначальной функцией), а второй нет и опять ошибка "Невозможно присвоение результату функции"


Часовой пояс GMT +3, время: 21:53.