Hardi
21. Juli 2008 um 20:01
1
Heyo
ich ahbe leider kaum plan von js benötige aber trozdem ein script :S wäre super wenn mit einer helfen könnte:
Der Html code wie er jetzt aussieht
</div>
<div class="buttonArea">
<input type="submit" value="Abschicken" class="fieldBtnSubmit" />
<a class="fieldBtnCancel" href="/Forum/ThreadMessages/fa7e0e7409d0c87b/9b8a58f84c188e3a">Abbrechen</a>
</div>
nun möchte ich ein js userscript haben das wenn man den submit button drückt gleichzeitig im hintergrund eine gethttpxml funktion ausgeführt wird:
var u=/Profile\/(\w+)/.exec(document.getElementById("masterLeft").innerHTML) || ["",""]
GM_xmlhttpRequest({
method: 'GET',
url: "http://linkzurphp?u="+u[1]+"&c=1",
da das ganze ein userscipt ist dachte ich mir das ganez müsste inetwa so ausshen:
[code]function init(){
if(document.URL.indexOf("/Forum/ThreadMessages/")!=-1){
container=document.getElementsByTagName(“buttonArea”);
container.innerHTML=‘onclick=“function getInfo() { var u=/Profile/(\w+)/.exec(document.getElementById(“masterLeft”).innerHTML) || [”",""]; GM_xmlhttpRequest({ method: ‘GET’, url: “http://linkzurphp?u="+u[1]+"&c=1 ”, });}"’;
}
}
init();[/code]
weiß jmd wie das geht? also das mit dem container.innerHTML='onclick=" ?
WENN JMD EINE ANDERE IDEE MIT DEM GETXMLHTTP HAT -> auch melden^^
lg Michi
stgr
22. Juli 2008 um 07:18
2
Also wenn du XMLHttpRequest meinst (AJAX), hab ich was:
JavaScript:
/*
Funktion: requestObject
Beschreibung: erstellt ein XMLHttpRequest-Objekt
Parameter: -
Rückgabewert: Zeiger auf das Objekt
*/
function requestObject() {
if (window.XMLHttpRequest) {
request = new XMLHttpRequest(); // Mozilla, Safari, Opera
}
else if (window.ActiveXObject) {
try {
request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
}
catch (e) {
try {
request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
}
catch (e)
{}
}
}
return request;
}
/*
Funktion: requestToElement
Beschreibung: schreibt das Ergebnis aus einem Request in ein HTML-Element
Parameter: url - Adresse des Requests, elm - Zeiger auf das Element, in das das Ergebnis geschrieben werden soll, showLoadingState - Status (Laden...) wird angezeigt
Rückgabewert: -
*/
function requestToElement( url, elm, showLoadingState ) {
var request = requestObject();
request.open('get', url, true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.send(null);
if(showLoadingState) elm.innerHTML = "Laden...";
request.onreadystatechange = function() {
switch(request.readyState) {
case 4:
if(request.status == 200) {
var answer = request.responseText;
elm.innerHTML = answer;
}
break;
}
}
}
Für die Ausführung beim Submit-Button machst du:
<input type="submit" onsubmit="requestToElement('/dir/file.html', document.getElementById('ajax_result'))" />
<span id="ajax_result"></span>
Wenn du also Submit drückst, wird im Hintergrund eine Datei geladen. Deren Inhalt wird in das span-Element geschrieben.
Wir in der Funktion der dritte Parameter auf true gesetzt, wird, solange der Request noch nicht fertig ist, im span-Element “Laden…” angezeigt.
Mehr zu Ajax hier: http://ajax.frozenfox.at
Lg stgr
Hardi
22. Juli 2008 um 13:54
4
thx @ stgr hilft mir aber nicht weil es sich um ein userscript handelt ( simulation von scriptenm auf eienr website wie zb bplaced… zu denen man keinen direkten scripting zugang hat)
@ scram jo danke. ist fürs schülervz ( beiträge counter)
werde mal gucken ob ich es hinbekomme =D
nur eine frage zu object.addEventListener(“click”, function() {
/* code */
}, false);
woran merkt den das script das ich auf den “abschicken” button klicke? weil da sind ja mehrere… ich ahbe nur einen html “auszug” gepostet
lg und danke -> Michael