Проблема с исполнением кода JS



  • Здравствуйте, я, видимо, такой криворукий, но пытаюсь исполнить код JavaScript при каждой загрузке страницы, использую соответствующую опцию, в окне сценария для теста записываю простейшее (для теста работоспособности) [[NEW_VARIABLE]] = "value"; То есть переназначаю уже объявленную переменную. После загрузки любой страницы никакой код JS не работает, переменная не переназначается, код не исполняется. Версия BAS 22.4.0. В чем может быть проблема?



  • @NikitaKireev Из браузера нельзя изменять переменные БАС, можно только передать в него значения переменных БАС.



  • @UserTrue Спасибо за ответ, я еще пытался с alert экспериментировать и console.log. Ни один из методов не срабатывает. Если делать явные ошибки в синтаксисе - тоже никаких сообщений об ошибках, будто код вообще не исполняется.



  • @NikitaKireev Ну alert разумеется не сработает, а все остальное работает. Вот пример
    1.xml

    2020-01-17_014821.png



  • @UserTrue я думал, что это поле как бы встраивает javascript внутрь страницы, а не является его урезанной версией. У меня есть javascript, выполняющийся в tempermonkey. Обычный js. Мне ответил автор в комментариях youtube, что я могу исполнить код через данную опцию, а получается так, что одно он может, другое не может и вносятся неаонятные ограничения вплоть до невозможности воспользоваться базовыми функциями javascript. Код, естественно, мой не работает. В нем нет алертов. Самое главное, что bas не выводит никаких сообщений об ошибках и непонятно как производить отладку, чтобы понять сработало ли хоть что-нибудь.



  • @NikitaKireev Нету ни каких граничений, помимо js при загрузке страница, можно также выполнить свой js в любое время на странице. Скорей всего ваш код плохо написан, тк бас преобразуют его в одну строку и если не везде стоят ; то код может стать не валидным



  • @UserTrue понял, спасибо за ответ. Отсутствие сообщений об ошибках сделает отладку сложным занятием, надеюсь в будущем появится вывод результата работы скрипты в лог. Последний вопрос, могу ли я в обход bas оттестировать скрипт где-нибудь, чтобы была такая же строгость к синтаксису? Tampermonkey действительно нечувствителен к наличию или отсутствию ";". Вопросы, конечно, новичковские. Я на JavaScript не пишу, поэтому и вопросы соответствующие уровню)



  • @NikitaKireev откройте сайт и пишите код через F12 - Console, а потом переносите в BAS



  • @Oyasumi-Punpun В браузерной консоли может работать, а через бас нет. Из-за причины описанной выше.



  • Например вот плохой код, который так-то работает

    function hi(){
    	console.log('hi');
    }
    (1==2)
    

    Но в БАС он вставится как

    function hi(){console.log('hi');} (1==2)
    

    А это уже ошибка так получается, что мы пытаемся вызвать функцию "на месте"

    Вот кстати его уже имеет смысл закинуть в консоль и поймать ошибки



  • @UserTrue если я пропишу в консоль просто console.log('hi'); должно ли у меня в бас что-то вывестись в консоль? Я просто указывал, что у меня и эта функция не работает. Что с точкой с запятой, что без нее лог пустой.



  • @NikitaKireev

    console.log('hi');
    

    Никуда кроме консоли браузера не выведет



  • @UserTrue Тема закрыта, спасибо большое за помощь. Особенность с строчной интерпретацией кода и связанными с этими ошибками уяснил. Большое спасибо!



  • @NikitaKireev said in Проблема с исполнением кода JS:

    @UserTrue Тема закрыта, спасибо большое за помощь. Особенность с строчной интерпретацией кода и связанными с этими ошибками уяснил. Большое спасибо!

    https://community.bablosoft.com/topic/949/часто-задаваемые-вопросы/2

    "Если JavaScript код выполняется в браузере, но не выполняется в BAS"
    https://community.bablosoft.com/topic/4718/консоль/6


Log in to reply