Bookmarklet erstellen: Methode bei HTML-Formularen ändern

Als Entwickler ist es oft wichtig zu sehen welche Daten übetragen werden. Gründe hierfür sind z.B. Sicherheit und Debuging. Folgendes Bookmarklet, wandelt alle Formulare auf der Seite von post- auf get-Formulare um.

Nachstehende Funktion ermittelt alle Form-Tags auf der Seite. Sie überprüft anschließend, ob das method-Attribute vorhanden ist, wenn nicht wird es erstellt und der Wert “get” zugewiesen. Sollte das method-Attribute vorhanden sein, und den Wert “post” besitzen, wird dieser auf “get” geändert.

function changePostToGet()
{
	count = 0;
	els = document.getElementsByTagName('form');
	for(i=0;i<els.length;i++)
	{
		if(!els[i].getAttribute('method'))
		{
			attrib = document.createAttribute('method');
			attrib.nodeValue = 'get';
			els[i].setAttributeNode(attrib);

			count ++;
		}
		else if(els[i].getAttribute('method').toLowerCase()=='post')
		{
			els[i].setAttribute('method', 'get');

			count ++;
		}
	}

	alert(count+' form(s) transformed.');
}

Da es nun praktisch schlecht ist, diesen Code auf jeder Seite unterzubringen, auf welchen man ihn benötigen würde, erstellen wir uns daraus ein Bookmarklet.

Der Funktionsrumpf wird hierzu in den Javascript Compressor kopiert, welcher daraus folgenden String erstellt:

count=0;els=document.getElementsByTagName('form');for(i=0;i<els.length;i++){if(!els[i].getAttribute('method')){attrib=document.createAttribute('method');attrib.nodeValue='get';els[i].setAttributeNode(attrib);count++}else if(els[i].getAttribute('method').toLowerCase()=='post'){els[i].setAttribute('method','get');count++}}alert(count+' form(s) transformed.');

Um das Bookmarklet jetzt z.B. im Firefox zu benutzen, wird über den Lesezeichenmanager in der Lesezeichen-Symbolleiste ein neuer Favorit erstellt.  Bei Adresse tragen wir javascript:<code> ein wobei <code>durch den obigen String ersetzt wird.

Erstellen eines neuen Bookmarklets in Firefox

Nach dem Klick auf “Hinzufügen” werden nun alle Formulare auf der Seite welche man gerade betrachtet, von post in get konvertiert.

Alternativ reicht es auch diesen Link in die Favoritenleiste des Browsers zu ziehen: PostToGetBookmarklet

Wird dann ein solches Formular abgeschickt, ist schnell ersichtlich welche Parameter welchen Wert besitzen – ohne das Änderungen an der Webseite selbst vorgenommen werden müssen.

  • Share/Bookmark
Leave a comment

0 Comments.

Leave a Reply


[ Ctrl + Enter ]