Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   userJS в Chrome (https://javascript.ru/forum/css-html-browser/9178-userjs-v-chrome.html)

iPharaon 03.05.2010 21:39

userJS в Chrome
 
Здравствуйте.
Объясните нубу... играю в одну браузерную онлайн игру, пытаюсь написать userjs для нее, но не выходит =(
И встал то по сути на ровном месте...
в теле страницы имеется скрипт:
<script> 
function hpupdate()
{
if (hptimer>=0) clearTimeout(hptimer);
hptimer=setTimeout('hpupdate()',1000);
hp_current_h=hp_current_h+hp_speed_h;
if (hp_current_h>hp_max_h) hp_current_h=hp_max_h;
if (hp_speed_h>1) rnd=1; else rnd=10;
var res=Math.round(hp_current_h*rnd)/rnd;
if (window.document.getElementById("hpdiv")!=null) {
window.document.getElementById("hpdiv").innerHTML=res;
  }
}
var hp_start_h=2;
var hp_max_h=264;
var hp_speed_h=0.29;
var hp_current_h=hp_start_h;
hptimer=setTimeout('hpupdate()',1000);
</script>

Проблема в том, что в userjs пытаюсь получить значение из данного скрипта так:
var root = typeof unsafeWindow != 'undefined' ? unsafeWindow : window;
var cur_hp = root.hp_current_h;
alert(cur_hp);

Так вот, в Opera и Firefox возвращается текущее значение ХП, а Chrome возвращает "Undefined". Что я не так делаю?
P.S. Скрипт естественно не весь, работа встала именно в этом месте.

Nekromancer 03.05.2010 22:20

Если ты играешь а не разрабатываешь, зачем писать скрипт для неё?)

iPharaon 04.05.2010 01:29

Чтобы себе жизнь облегчить =)

Lexi 06.05.2010 00:04

Насколько я помню, в хроме window скрипта изолировано от window страницы. Нужно инжектить в страницу скрипт ( var s = document.createElement('script'); ... document.documentElement.appendChild(s) ) и уже оттуда получать значения. Вот так вот криво.

А unsafeWindow там нет: http://stackoverflow.com/questions/2...ript-on-chrome

iPharaon 06.05.2010 22:53

Спасибо! Работает =)


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