2010-12-17 25 views
1

こんにちは:) 私はGreasemonekyでオブジェクトを操作しようとしていますので、スクリプトを書く必要があります:) allowFullScreen paramの値を変更したいです。オブジェクトparamの値を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> 

私はすでに何かを書かれたが、それは動作しません:

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

} 

私の言語

答えて

1

のため申し訳ありませんが任意のgetElementsByName機能で知られてはいけません。多分それはGreaseMonkey関数です。

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

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

EDITgetElementsByTagNameとして、自分の無知については申し訳ありませんgetElementsByNameが存在していて、戻って、配列のようなしかし、JSで、私のような何かをするだろう。だから、コードは次のようになります。

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

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

'getElementsByName'が存在し、すべての主要なブラウザによりサポートされているが(質問に示すように、object IDがflashcであることを想定)。だからw3schools:http://www.w3schools.com/jsref/met_doc_getelementsbyname.asp – Zecc

+0

うわー!優れた。私たちは毎日物事を学びます。ありがとう。 – joksnet

+0

なぜそれが動作しないのかわかりません - 私はいつも "false"の値を持っています:|しかし、とにかく助けてくれたことに感謝します:) – Lyczos

0

getElementsByNameは、ドキュメントのメンバーであり、(私は、より良い「アレイのようなのDOMNodeListを」言うべき)配列を返します。

だからあなたが使用する必要があります。

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

フラッシュオブジェクトが既に古い値で初期化されていますので、それはおそらくallowFullScreen値を変更するには十分ではありません。

これを回避するには、最初から新しいallowFullScreenの値を使用して新しいフラッシュオブジェクトを作成します。

次のコードは動作するはずですが、それはそう、jQueryのを必要とします(

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

(1)だけ// @includeディレクティブ(複数可)の後に、Greasemonkeyのメタデータセクションに次の行を追加します。 2)GMの「Manage User Scripts」パネルを使用して、Greasemonkeyスクリプトをアンインストールしてから再インストールし、jQueryファイルがPCにコピーされていることを確認します。

(3)次に、このコード試みる:

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


+0

多分、私はGM上でスクリプトを実行できません。([私はあまりにもうまくいきません/)しかし、とにかく、ありがとう;) – Lyczos

+0

@Lyczos:誰でもGMスクリプトを実行できます。どのように**動作しないかを正確に**指定する必要があります。また、変更しようとしているページへのリンクを投稿するのが最善の方法です。 –

関連する問題