so da bin ich wieder
mit evaluate meine ich natürlich document.evaluate(string path,...)
damit kann man sehr einfach auf einen bestimmten knoten zugreifen
aber jetzt unwichtig
Wichtig ist:
Etwas ähnliches wie dein variablen-zugriff hab ich bereits in funktion gesehen.
Und zwar bei 2 popups.
Aber meine zu öffnende Fenster sind normale tabs, bei dehnen es scheinbar nich funktioniert:
hier die zwei beteiligten GM-scrpits:
das erste wird im opener-fenster ausgeführt
das zweite im zu öffnenden fenster
// ==UserScript==
// @name TFsuche_mod
// @namespace TFsuche_mod
// @include
var win = null;
var win_TF = null;
var urls = ["211","241"];
var path_url=">>>eine bestimmte seite :)<<<";
var status_value ="nicht fertig";
var pos_at_win ="/HTML[1]/BODY[1]/DIV[5]/TABLE[2]/TBODY[1]/TR[1]/TD[1]";
var max_num_trans = 0;
function main() {
var i=0;
var l= urls.length;
win = window.open(path_url+urls[i],"nix"+urls[i]);
i++;
window.setInterval(function() {if(i<5){
GM_log("i<5");
if(status_value=="Fertig"){
GM_log("fertig");
status_value = "nicht fertig";
if(max_num_trans>=1){
max_num_trans = 0;
GM_log("transen grösser");
win = window.open(path_url+urls[i],"nix"+urls[i]);i++;
}else{
max_num_trans = 0;
GM_log("transen kleiner");
win.close();
win = window.open(path_url+urls[i],"nix"+urls[i]);i++;
}
}
}
},500);
};
window.addEventListener("keypress",
function(event) {
if (event.altKey && event.charCode == 'g'.charCodeAt(0)) {
event.preventDefault();
main();
}
},
true);
//.user.js
// ==UserScript==
// @name TF_mod
// @namespace TF_mod
// @include
// @include
function do_platypus_script() {
var max_num_Trans =0;
for(var i=1;i<=17;){
try{
var tmp = calc_add(i+2);
if((typeof tmp)=="undefined") tmp =0;
//GM_log("tmp:"+tmp+" max_num_Trans:"+max_num_Trans);
max_num_Trans = (tmp<max_num_Trans?max_num_Trans:tmp);
}catch(e){
i=18;
}
i=i+1;
}// >>>Zeile 87<<<
do_modify_html_it(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[5]/TABLE[2]/TBODY[1]/TR[1]/TD[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,/.*/,max_num_Trans+"("+window.opener+")",null);
// ***crosswindow-werteübergabe*** <<<---hier passiert ANGEBLICH was
try{
window.opener.max_num_trans = max_num_Trans;
GM_log("max_num_trans gesetzt");
}catch(e){
GM_log(e.message);
}
try{
window.opener.status_value = "Fertig";
GM_log("status_value gesetzt");
}catch(e){
GM_log(e.message);
}
};
window.addEventListener("load", function() { do_platypus_script() }, false);
function calc_add(tr) {
var ret = 0;
do_modify_html_it(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[5]/TABLE[2]/TBODY[1]/TR['+tr+']/TD[2]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,/'metall: /,' (',null);
do_modify_html_it(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[5]/TABLE[2]/TBODY[1]/TR['+tr+']/TD[2]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,/<br>Kristalle: /,'+',null);
do_modify_html_it(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[5]/TABLE[2]/TBODY[1]/TR['+tr+']/TD[2]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,/<br>omega: /,'+',null);
do_modify_html_it(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[5]/TABLE[2]/TBODY[1]/TR['+tr+']/TD[2]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,/style="border: medium none ; width: 12px;">/,')',null);
do_modify_html_it(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[5]/TABLE[2]/TBODY[1]/TR['+tr+']/TD[2]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,/`/g,'',null);
var num = ((document.evaluate('/HTML[1]/BODY[1]/DIV[5]/TABLE[2]/TBODY[1]/TR['+tr+']/TD[2]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue.innerHTML).match(/\d++\d++\d+/));
if(num!=null){
var tmp = num[0].match(/\d+/g);
var res = 0;
for(var i=0;i<3;i++){
//GM_log('tr:'+tr+' i:'+i);
res = res+parseInt(tmp[i]);
}
ret =((((res-150000)/350000)<1)?0:((res-150000)/350000));
if(ret>0){
do_modify_html_it(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[5]/TABLE[2]/TBODY[1]/TR['+tr+']/TD[2]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,/\d++\d++\d+/,ret,null);
}else{
do_modify_html_it(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[5]/TABLE[2]/TBODY[1]/TR['+tr+']/TD[2]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,/(\d++\d++\d+)/,'',null);
}
return ret;
}
};
function do_modify_html_it(doc, element, match_re, replace_string) {
match_re = new RegExp(match_re);
if (element.innerHTML) {
element.innerHTML = element.innerHTML.replace(match_re, replace_string);
};
};
//.user.js
in zeile 88 wird als Ausgabe "0([object XPCNativeWrapper [object Window]])" in die entsprechende tabelle geschrieben
und die nachfolgenden try-catch-blöcke werden auch augeführt
nur werden die globalen variablen
window.opener.max_num_trans
und
window.opener.status_value
scheinbar nicht verändert, denn der setInterval-Timer kommt nicht über das "if(i<5)" hinaus.
und die iframes kann ich ja deshalb nicht nutzen, weil das opener script erwartungsgemäß ~10-50 Fenster öffnen wird.
Das ist mit iframes(im gegensatz zu tabs) sehr unübersichtlich !und! nach allem was ich bisher gelesen habe, müssen nach jedem hinzufügen oder entfernen ALLE Inhalte wieder neugeladen werden.
Das geht gar nich!!!
ich hoffe der code gibt jetzt etwas mehr einblick in das problem.
hopeful waiting derdon
PS:@struppi ich hab keinen schimmer von ajax .
vllt kennst du ja ne Seite mit einen fehlerfreien/schnellen/umfassenden Tutorial und gutem Supportforum.
Ich hab nichts entsprechendes gefunden