Javascript 用Greasemonkey替换对象参数的值

Javascript 用Greasemonkey替换对象参数的值,javascript,object,greasemonkey,params,Javascript,Object,Greasemonkey,Params,你好:) 我试图用Greasemoneky操作某个对象,所以我必须编写一个脚本:) 我想更改allowFullScreen参数的一个值 <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">

你好:) 我试图用Greasemoneky操作某个对象,所以我必须编写一个脚本:) 我想更改allowFullScreen参数的一个值

<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>

抱歉,我的语言不知道任何
getElementsByName
函数。也许这是一个油腻的函数。但在JS中,我会这样做:

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

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

不知道任何
getElementsByName
函数。也许这是一个油腻的函数。但在JS中,我会这样做:

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

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

getElementsByName是文档的一个成员并返回一个数组(我最好说“类似于DOMNodeList的数组”)

因此,您应该使用:

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

getElementsByName是文档的一个成员并返回一个数组(我最好说“类似于DOMNodeList的数组”)

因此,您应该使用:

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

更改
allowFullScreen
值可能还不够,因为flash对象已经用旧值初始化

要解决此问题,请从一开始就使用新的
allowFullScreen
值创建一个新的flash对象

以下代码应该可以工作,但它需要jQuery,因此:

(1) 将此行添加到Greasemonkey元数据部分,就在
/@include
指令之后:

(2) 使用GM的“管理用户脚本”面板,卸载并重新安装Greasemonkey脚本,以确保jQuery文件复制到您的PC

(3) 然后尝试以下代码:

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


(假设
对象
id为
flashc
,如问题所示。)

更改
allowFullScreen
值可能不够,因为flash对象已经用旧值初始化

要解决此问题,请从一开始就使用新的
allowFullScreen
值创建一个新的flash对象

以下代码应该可以工作,但它需要jQuery,因此:

(1) 将此行添加到Greasemonkey元数据部分,就在
/@include
指令之后:

(2) 使用GM的“管理用户脚本”面板,卸载并重新安装Greasemonkey脚本,以确保jQuery文件复制到您的PC

(3) 然后尝试以下代码:

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


(假设
对象
id是
flashc
,如问题所示。)

getElementsByName
存在,并且受所有主要浏览器的支持,w3schools说:我不知道为什么它不工作-我一直有“false”值:|但无论如何感谢您的帮助:)我的代码有一个输入错误。现在已经修好了。如果
setAttribute
不起作用,请直接尝试
params[i]。value='true'
getElementsByName
存在,并且受所有主要浏览器的支持,W3s说:我不知道为什么它不起作用-我一直有“false”值:|但无论如何感谢您的帮助:)我的代码有一个输入错误。现在已经修好了。如果
setAttribute
不起作用,请直接尝试
params[i]。value='true'
。可能我无法在GM上运行脚本:([i也不起作用;/)但无论如何还是要感谢;)@Lyczos:任何人都可以运行GM脚本。你需要明确说明它的工作方式。最好在你试图修改的页面上发布一个链接。也许我不能在GM上运行脚本:([我也不工作;/)不过还是要谢谢;)@Lyczos:任何人都可以运行GM脚本。你需要明确说明它是如何工作的。最好在你试图修改的页面上发布一个链接。