2010-12-17 11 views
1

Hallo :) Ich versuche, mit etwas Objekt mit Greasemoney zu manipulieren, also muss ich ein Skript schreiben :) Ich möchte einen Wert von AllowFullScreen-Parameter ändern.Ersetze Wert von Objektparam mit Greasemonkey

<object width="760" height="660" type="application/x-shockwave-flash" id="flashc" name="flashc" data="http://example.com/swf/39.swf"> 
    <param name="menu" value="false"> 
    <param name="allowFullScreen" value="false"> // I want to change this to **"true"** 
    <param name="scale" value="noscale"> 
    <param name="wmode" value="transparent"> 
    <param name="allowScriptAccess" value="always"> 
</object> 

ich etwas schon geschrieben, aber es funktioniert nicht:

function allowFS() 
{ 
    var obj = getElementsByName("allowFullScreen") 
    obj.setAttribute("value", "true"); 

} 

Sorry für meine Sprache

Antwort

1

nicht jeder getElementsByName Funktion bekannt Sie. Vielleicht ist es eine GreaseMonkey-Funktion. Aber in JS würde ich so etwas wie:

var params = document.getElementsByTagName('param'); 

for (var i = 0; i < params.length; i++) 
{ 
    if (params[i].name == 'allowFullScreen') 
    { 
     params[i].setAttribute('value', 'true'); 
    } 
} 

EDIT: Traurig über meine Unwissenheit, getElementsByName existiert und zurück und Array-artige als getElementsByTagName. So wird der Code sein:

var params = document.getElementsByName('allowFullScreen'); 

for (var i = 0; i < params.length; i++) 
{ 
    params[i].setAttribute('value', 'true'); 
} 
+0

'getElementsByName' existiert und wird von allen großen Browser unterstützt (Geht davon aus, dass die object id flashc wie in der Frage gezeigt ist.) , so sagt w3schools: http://www.w3schools.com/jsref/met_doc_getelementsbyname.asp – Zecc

+0

Wow! Ausgezeichnet. Wir lernen Dinge jeden Tag. Vielen Dank. – joksnet

+0

Ich weiß nicht, warum es nicht funktioniert - die ganze Zeit habe ich "false" Wert: | Aber danke trotzdem für den Versuch zu helfen :) – Lyczos

0

getElementsByName Mitglied des Dokuments ist und gibt ein Array (Ich sollte besser sagen "ein Array-like DOMNodeList").

So sollten Sie verwenden:

var obj = document.getElementsByName("allowFullScreen")[0]; 
0

Es ist wahrscheinlich nicht genug, um den allowFullScreen Wert zu verändern, weil das Flash-Objekt bereits mit dem alten Wert initialisiert wurde.

Um dies zu umgehen, erstellen Sie ein neues Flash-Objekt mit dem neuen allowFullScreen Wert von Anfang an.

sollte der folgende Code arbeiten, aber es erfordert jQuery, so:

(1) In der Grease Metadaten Abschnitt diese Linie, kurz nach der // @include Richtlinie (n):

// @require http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js 

(2) Benutze GM's "Manage User Scripts" Panel, deinstalliere und installiere das Greasemonkey Skript um sicherzustellen, dass die jQuery Datei auf deinen PC kopiert wurde.

(3) Dann versuchen Sie diesen Code:

$('#flashc param[name="allowFullScreen"]').val ("true"); 
var jNewFlash = $('#flashc').clone (true); 
$('#flashc').replaceWith (jNewFlash) 


+0

vielleicht kann ich Skripte auf GM nicht laufen lassen :([ich arbeite nicht auch; /) Aber trotzdem danke;) – Lyczos

+0

@Lyczos: Jeder kann GM-Drehbücher laufen lassen. Sie müssen genau angeben, ** wie ** es nicht funktioniert. Es wäre auch am besten, einen Link zu der Seite zu veröffentlichen, die Sie ändern möchten. –