Suche im Forum:
Suchen


Autor Nachricht
Beitrag01.09.2012 um 14:01 (UTC)    
Titel: Attribut hinzufügen mit JavaScript

Hey,

ich kenn mich echt wenig mit JavaScript aus, deshalb diese (wahrscheinlich
anfängerhafte) Frage. Und zwar hab ich eine Umfrage auf meiner Seite,
angeboten von einem externen Service:
Code:
<script language="JavaScript" src="http://146371.vote.onetwomax.de/?output=js">

Wenn man jetzt aber auf abstimmen drückt, wird die Umfrage im selben Tab
geöffnet und ich möchte jetzt mit JavaScript das Attribut target="_blank"
hinzufügen, was nach meinen Recherchen auch möglich ist Very Happy Ich hab mir
dann schließlich folgenden Code zusammengebastelt,:
Code:
<script language="JavaScript">
<!--
if (document.getElementByName("script)[1]) {
var survey = document.getElementByName("script")[1];
survey.setAttribute('target', '_blank');} else {
alert('Kann kein Element mit dem Namen script finden');}
//-->
</script>

doch es passiert überhaupt garnichts. Weder wird das Attribut hinzugefügt,
noch öffnet sich eben diese Meldung im else. What 2 do Crying or Very sad

Ich hoffe jemand kann den Code korrigieren oder ganz ersetzen Very Happy

Grüße
Nico

/* Edit: */
Ich will eigentlich nicht dem Script das Attribut hinzufügen, sondern dem
Link im Script :/


Zuletzt bearbeitet von web-cube am 01.09.2012, 15:02, insgesamt einmal bearbeitet
Beitrag01.09.2012 um 14:36 (UTC)    
Titel:

Zuerst folgende Zeile:
Code:
if (document.getElementByName("script)[1]) {

Hier fehlt schon mal ein ", also:
Code:
if(document.getElementByName("script")[1]) {

mit [1] greift man übrigends auf das 2. Element zu, da der Index bei 0 beginnt.
Das nur am Rande, falls du das noch nicht wusstest.

Wie man jetzt aber genau auf den Link zugreift kann ich dir leider nicht sagen, da ich den Quellcode nicht kenne.

Könntest du uns also bitte den Link zur entsprechenden Seite geben.

mfg Philipp

Edit:
Noch etwas was mir aufgefallen ist:
Code:
<script language="JavaScript" src="http://146371.vote.onetwomax.de/?output=js">

Hier muss das <script> Tag auch wieder geschlossen werden, also:
Code:
<script language="JavaScript" src="http://146371.vote.onetwomax.de/?output=js"></script>

______________
Forenregeln, FAQ, Suchfunktion


Zuletzt bearbeitet von philipp7 am 01.09.2012, 15:37, insgesamt einmal bearbeitet
Beitrag01.09.2012 um 14:47 (UTC)    
Titel:

philipp7 hat Folgendes geschrieben:
Zuerst folgende Zeile:
Code:
if (document.getElementByName("script)[1]) {

Hier fehlt schon mal ein ", also:
Code:
if(document.getElementByName("script")[1]) {

mit [1] greift man übrigends auf das 2. Element zu, da der Index bei 0 beginnt.
Das nur am Rande, falls du das noch nicht wusstest.

Das Anführungszeichen hab ich ergänzt, es hat sich jedoch nichts geändert.
Das mit den Nummern ist mir bekannt, aber zählt der Script selbst auch mit?
Und gibt es eventuell im Quellcode des Baukastens Scripte, die mitgezählt
werden müssen?

philipp7 hat Folgendes geschrieben:

Wie man jetzt aber genau auf den Link zugreift kann ich dir leider nicht sagen, da ich den Quellcode nicht kenne.

Könntest du uns also bitte den Link zur entsprechenden Seite geben.
philipp7 hat Folgendes geschrieben:

Edit:
Noch etwas was mir aufgefallen ist:
Code:
<script language="JavaScript" src="http://146371.vote.onetwomax.de/?output=js">

Hier muss das <script> Tag auch wieder geschlossen werden, also:
Code:
<script language="JavaScript" src="http://146371.vote.onetwomax.de/?output=js"></script>

Hab ich beim Kopieren vergessen Very Happy

Würde das Script denn so wie es ist funktionieren?
Beitrag01.09.2012 um 15:35 (UTC)    
Titel:

Übrigends noch etwas:
getElementByName -> getElementsByTagName

web-cube hat Folgendes geschrieben:
Das Anführungszeichen hab ich ergänzt, es hat sich jedoch nichts geändert.
Das mit den Nummern ist mir bekannt, aber zählt der Script selbst auch mit?
Und gibt es eventuell im Quellcode des Baukastens Scripte, die mitgezählt
werden müssen?

Ich würde das Ganze attributbedingt machen, dann ist es egal, wenn du noch mehr Skripte davor einbindest:
Code:
function getElementByAttr(name, attr, attrValue) {
var e = document.getElementsByTagName(name);
for(var i = 0; i < e.length; i++) {
   if(e[i].getAttribute(attr) == attrValue) {
      return e[i];
   }
}
}

Aufrufen mit:
Code:
var scriptTag = getElementByAttr("script", "src", "http://146371.vote.onetwomax.de/?output=js");


Den Button kann man dann auch mit dieser Funktion finden:
Code:
var scriptTag = getElementByAttr("input", "value", "Abstimmen");


mfg Philipp
______________
Forenregeln, FAQ, Suchfunktion


Zuletzt bearbeitet von philipp7 am 01.09.2012, 16:36, insgesamt einmal bearbeitet
Beitrag01.09.2012 um 16:17 (UTC)    
Titel:

Zitat:
Übrigends noch etwas:
getElementByName -> getElementsByTagName


Dann öffnet sich wenigstens das else Very Happy

Und wie würde dann das fertige Script aussehen? Ich versteh davon echt wenig:/
Beitrag01.09.2012 um 16:46 (UTC)    
Titel:

Folgendermaßen:
Code:
<script language="JavaScript" src="http://146371.vote.onetwomax.de/?output=js"></script>
<script>
function getElementByAttr(name, attr, attrValue) {
var e = document.getElementsByTagName(name);
for(var i = 0; i < e.length; i++) {
   if(e[i].getAttribute(attr) == attrValue) {
      return e[i];
   }
}
return false;
}

if(getElementByAttr("script", "src", "http://146371.vote.onetwomax.de/?output=js")) {
var button = getElementByAttr("input", "value", "Abstimmen");
button.setAttribute('target', '_blank');
}
</script>

Das Ganze ist aber ungetestet, also bitte nicht wundern, falls nicht klappt.
Dann teste ich das ganze einfach mal durch.

mfg Philipp
______________
Forenregeln, FAQ, Suchfunktion
Beitrag01.09.2012 um 18:14 (UTC)    
Titel:

Funktioniert, danke Smile
Beitrag01.09.2012 um 18:16 (UTC)    
Titel:

Schön, dass es geht Smile
Und vielen Dank für die Rückmeldung!

-CLOSED-, da erledigt

mfg philipp
______________
Forenregeln, FAQ, Suchfunktion
Beiträge der letzten Zeit anzeigen:   


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de