nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 17:04



Reply to topic  [ 48 posts ]  Go to page 1, 2, 3, 4  Next
Отладка JS в Opera 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
JavaScript стал популярным последнее время и отладчики JS в современные браузеры
встроены.

Оказалось, и в моей не самой новой "Opera-9.64" под Вендой-98 отладчик JS также
предусмотрен...

И он носит название Opera Dragonfly.
Quote:
Opera Dragonfly – полнофункциональный набор средств разработчика, предназначенных
для упрощения вашей работы. На расстоянии одного щелчка правой кнопкой мыши от вас.

Ну правой кнопкой мыши - я не справился... видимо, затупил... :wink:
А вот с трёх кнопок клавиатуры: Ctrl + Shift + I отладчик Dragonfly
у меня запустился, чем сначала порадовал! :roll:

Но потом выяснилось что онлайновый он... что несколько огорчило, но ненадолго.
Не один я люблю иметь инструменты при себе на диске, поэтому решение уже
было найдено: Opera Dragonfly оффлайн.

Суть его проста и заключается в том, что в папке C:\...\Opera\ создается дополнительная
папка C:\...\Opera\dragonfly\, а в ней - ещё две папки:
C:\...\Opera\dragonfly\script и
C:\...\Opera\dragonfly\style.

Чтобы было более понятно - у меня это вот так, поскольку Opera у меня мобильная:
C:\Opera964ru\dragonfly
C:\Opera964ru\dragonfly\script
C:\Opera964ru\dragonfly\style

Теперь в эти папки надо полжить соответственно загрузчик Dragonfly, сам
JS-отладчик Dragonfly и стили.

Opera автоматически делает это с адреса:
https://dragonfly.opera.com/app/
причем там происходит перенаправление по версиям.

Для Opera-9.64 надо загрузить в папку C:\Opera964ru\dragonfly файл:
https://dragonfly.opera.com/app/core-2-1/client-ru.xml

В папку C:\Opera964ru\dragonfly\script загружаем:
https://dragonfly.opera.com/app/core-2-1/script/dragonfly-ru.js

В папку C:\Opera964ru\dragonfly\script загрузим:
https://dragonfly.opera.com/app/core-2-1/style/dragonfly.css

Для Opera старших версий - адреса другие:
В папку C:\Opera964ru\dragonfly - файл:
https://dragonfly.opera.com/app/core-2-2/client-ru.xml

В папку C:\Opera964ru\dragonfly\script загружаем:
https://dragonfly.opera.com/app/core-2-2/script/dragonfly-ru.js

В папку C:\Opera964ru\dragonfly\script загрузим:
https://dragonfly.opera.com/app/core-2-2/style/dragonfly.css

Далее - надо указать Opere, откуда ей брать Dragonfly в офф-лайне, вводим ссылку:
настройки opera:config#DeveloperTools|DeveloperToolsURL
и в настройках ведём путь
к загрузчику (на моём примере):
file://localhost/C:/Opera964ru/dragonfly/client-ru.xml

В других случаях:
file://localhost/C:/Program%20Files/Opera/dragonfly/client-ru.xml

Если у вас Opera расположена иначе, то путь скорректируйте.
Operу надо перезагрузить, нажать Ctrl + Shift + I и счастье произойдёт! :roll:

Image

_________________
iLavr


11 Jan 2013 10:31
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Ну и если счастье у вас не случилось (а у меня оно не случилось :lol: ) то пару
слов о том, как счастья от Opera Dragonfly в офф-лайне добиться...

Ну поскольку путь запуска загрузчика client-ru.xml мы записали:
file://localhost/C:/Opera964ru/dragonfly/client-ru.xml
то он, конечно же, загрузится... :-? А вот дальше - нифига...

Я недолго смотрел на это "нифига" и заглянул в текст client-ru.xml, где есть
две нужные строки:
Code:
<link rel="stylesheet" href="./style/dragonfly.css"/>
<script src="./script/dragonfly-ru.js"/>

Ну кто разбирается, что здесь к чему, и относительно какой папки действуют эти пути,
может проделать разные эксперименты сам...

Но в итоге я исправил эти строки сначала вот так:
Code:
<link rel="stylesheet" href="file://localhost/C:/Opera964ru/dragonfly/style/dragonfly.css"/>
<script src="file://localhost/C:/Opera964ru/dragonfly/script/dragonfly-ru.js"/>


А потом и проще - достал dragonfly-ru.js и dragonfly.css из своих папок
и сложил рядом с client-ru.xml в директории:
C:/Opera964ru/dragonfly/, а сами папки script и style удалил...

После этого "счастье" запуска Opera Dragonfly в офф-лайне реализовалось
вот так:
Code:
<link rel="stylesheet" href="file://localhost/C:/Opera964ru/dragonfly/dragonfly.css"/>
<script src="file://localhost/C:/Opera964ru/dragonfly/dragonfly-ru.js"/>


Ну и если у Вас всё получилось - успешной отладки! :wink:

Image



PS. Ну а кто никогда JS не отлаживал, то простенькая стартовая информация здесь и здесь...

_________________
iLavr


11 Jan 2013 11:12
Profile
Senior
User avatar

Joined: 09 Aug 2012 11:20
Posts: 176
Location: 95.135.174.189
Reply with quote
Post 
Давно пользуюсь Dragonfly'ом, до появления "трудной" капчм на депозите занимался автокликерами. Но как то об оффлайн версий и не думал. Благодарю за полезною наводку :kruto:

_________________
Хочу стать всезнайкой ;-)


11 Jan 2013 15:42
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Post 
Опера переходит на WebKit - теперь это будет одна фигня с Safari, Chrome и всякими Konqueror...

_________________
:dj: https://mastodon.social/@Shaos


13 Feb 2013 11:45
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos - вот такой вопрос возник...
Если эмулятор на JavaScript запускается локально на диске и нет коннекта с интернетом
в этот момент, откуда можно подгрузить в него тексты ассемблерных программ (они есть)?

И если возможность прямо по ходу дела что-то добавить в список ассемблерных программ?

_________________
iLavr


19 Feb 2013 15:09
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Post 
да наверное ниоткуда

в каком-то одном браузере вроде бы есть класс File для работы с локальными файлами, но я сомневаюсь что интересующий тебя ассемблер вообще знает о том, что его могут запускать локально :)

_________________
:dj: https://mastodon.social/@Shaos


19 Feb 2013 21:28
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
да наверное ниоткуда

А если у меня на диске установлен локальный мини-сервер - это проблему никак не поправит?

(при работе с J2ME он как-то понадобился порешать что-то похожее...)

_________________
iLavr


20 Feb 2013 01:07
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Post 
надо в скрипт смотреть - может и получится

_________________
:dj: https://mastodon.social/@Shaos


20 Feb 2013 21:10
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
надо в скрипт смотреть - может и получится

Я решил с сервером не морочиться и загнал их в текст скрипта:
Code:
 if(file == "noise.asm") {
  document.getElementById( "code" ).value = "; static noise\nstart: ldy #$ff\n       ldx #$0\nloop:  lda $fe\n       sta $200,x\n       and #$7\n       sta $300,x\n       and #$3\n       sta $400,x\n       and #$1\n       sta $500,x\n       inx\n       dey \n       bne loop\n       rts\n";
    file = "";
   }

Хотел без "\n " обойтись, чтобы не расставлять их вручную, но пишут, что
Code:
var random = <>
;     random.asm
loop: lda $fe       ; A=rnd
      sta $00       ; ZP(0)=A
      lda $fe
      and #$3       ; A=A&3
      clc           ; Clear carry
      adc #$2       ; A+=2
      sta $01       ; ZP(1)=A
      lda $fe       ; A=rnd
      ldy #$0       ; Y=0
      sta ($00),y   ; ZP(0),ZP(1)=y
      jmp loop
</>.toString();

не везде правильно работает...

_________________
iLavr


21 Feb 2013 10:47
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos - ещё такой вот вопрос по ходу случился...

А как JavaScript в принципе должен реагировать на ошибку?
У меня - перестаёт выполнять скрипт, начиная с места ошибки...

Вот в облюбованном мной эмуляторе 6502: http://www.6502asm.com/
авторы сами заглушили комментарием одну кнопку, но в скрипте дают команду
сделать её неактивной.
На этом месте у меня выполнение скрипта останавливается.

Но, похоже, что у них не так... ибо вывесили с багом: http://www.6502asm.com/ :(

_________________
iLavr


22 Feb 2013 13:52
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Post 
Сайтов с ошибками JS в интернете масса (или может в одних браузерах работает, а в других - сбоит?)
В большинстве случаев браузер как-то изображает что случилась ошибка, но скрипт тем не менее пытается работать дальше - вроде так...

_________________
:dj: https://mastodon.social/@Shaos


22 Feb 2013 15:13
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
в каком-то одном браузере вроде бы есть класс File для работы с локальными файлами...

В общем локальный файл нормально втаскивается в iframе...
Code:
<iframe id="frame" src='file://localhost/C:/.../6502%20A/examples/adventure.asm' width=380 height=260 >

а потом его можно скопировать в переменную:
Code:
var linkedFrame = document.getElementById("frame");
var content = linkedFrame.contentWindow.document.body.innerHTML;

А эту переменную уже использовать в программе ассемблера.

То тут, блин, какая-то засада случается...
Все *.asm-файлы по сути текстовые и втягиваются в iframе нормально:

Image

Как я понял, браузер просто автоматом подставляет перед текстовыми файлами:
Code:
<pre>
а вот
</pre> - в конце не ставит...


Но один единственный файл почему-то при загрузке портится... :(
http://www.6502asm.com/examples/adventure.asm

Image

Code:
<pre> браузер в его начале не ставит...


Совершенно непонятно - почему...

Если добавить к файлу искуственно
Code:
<pre>
...
</pre>

Форматирование внешне не портится, но портится при копировании...

_________________
iLavr


16 Dec 2014 14:54
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Есть у меня подозрение, что шибко длинные строки портят формат в iframе...
Code:
screen_data:
;   0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31
dcb $55,$55,$55,$55,$55,$dd,$dd,$55,$dd,$99,$d9,$d9,$99,$99,$99,$99,$99,$99,$99,$99,$9d,$d9,$99,$dd,$55,$dd,$dd,$55,$55,$55,$55,$55 ; $00 Forest, E/W Path
dcb $55,$d9,$9d,$55,$55,$99,$9d,$55,$5d,$99,$9d,$d5,$5d,$99,$99,$d5,$5d,$9d,$99,$d5,$5d,$99,$99,$d5,$55,$d9,$99,$55,$55,$d9,$9d,$55 ; $01 Forest, N/S Path
...
dcb $bb,$bb,$bb,$bb,$bb,$bb,$bb,$bb,$bb,$ff,$fb,$bb,$ff,$ff,$ff,$ff,$bb,$ff,$fb,$bb,$bb,$bf,$bb,$bb,$bb,$bf,$bb,$bb,$bb,$bf,$bb,$bb ; $4f Black, S/E/W
dcb $bb,$bf,$bb,$bb,$bb,$bf,$bb,$bb,$bb,$ff,$fb,$bb,$ff,$ff,$ff,$ff,$bb,$ff,$fb,$bb,$bb,$bb,$bb,$bb,$bb,$bb,$bb,$bb,$bb,$bb,$bb,$bb ; $50 Black, N/E/W
dcb $bb,$bf,$bb,$bb,$bb,$bf,$bb,$bb,$bb,$ff,$fb,$bb,$ff,$ff,$ff,$ff,$bb,$ff,$fb,$bb,$bb,$bf,$bb,$bb,$bb,$bf,$bb,$bb,$bb,$bf,$bb,$bb ; $51 Black, N/E/S/W

_________________
iLavr


Last edited by Lavr on 23 Dec 2014 15:33, edited 1 time in total.



16 Dec 2014 16:02
Profile
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
Post 
А innerText вместо innerHTML не работает? Вроде бы как логичнее именно его использовать.


16 Dec 2014 21:24
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Post 
Интересный трюк - проверил на фаерфоксе - работает :)

И кстати innerText чего-то нету такого, а innerHTML таки да - возвращает "<pre>внутренности файла..."

Надо чтоли этот трюк за уши подтянуть к моей либе Webitable.js ;)

_________________
:dj: https://mastodon.social/@Shaos


16 Dec 2014 22:05
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 48 posts ]  Go to page 1, 2, 3, 4  Next

Who is online

Users browsing this forum: No registered users and 22 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.