我想更改此值:
<param name="fullScreen" value="0">
对此:
<param name="fullScreen" value="1">
在页面上。我一直用这个脚本试验Greasemonkey:
// ==UserScript==
// @name Fullscreen
// @namespace http://localhost
// @include http://jahantv.com*
// @include *jahantv*
// ==/UserScript==
var i, x = document.evaluate('//*[@name="fullScreen"][@value="0"]', document,
null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for ( i=0 ; i < x.snapshotLength; i++ )
x.snapshotItem(i).setAttribute("value", "1");
但它没有发挥作用。必须有一个简单的方法来做到这一点。我对javascript的了解是非常有限,因此我将非常感谢您回复详情。
编辑:如果有人想尝试一下,请转到此页面http://jahantv.com/Persian/Iran/Iranian/OnLine/Live/Streaming/TVs/ariana-TV.html并运行该脚本,并且请注意该网站的嘲笑设计。
答案 0 :(得分:1)
无需使用XPath,这会在页面加载时设置值:
// ==UserScript==
// @name Fullscreen
// @namespace http://localhost*
// @include http://jahantv.com*
// @include *jahantv*
// ==/UserScript==
var fullScrParam = document.querySelector("[name='fullScreen']");
fullScrParam.value = "1";
备注:强>
*
在localhost
后失踪。
<param>
属性已更改但未尝试播放视频,因为我不会安装所需的插件。答案 1 :(得分:0)
尝试//param[@name="fullScreen" and @value="0"]
找到节点,但我不确定这是否有效:我主要关心的是启动顺序。 Greasemonkey脚本是在页面加载之后和创建播放器之前运行的吗?玩家代码在启动后更改值时是否会获得更新?
因此,即使在浏览器可以看到HTML之前,您也可以使用修改HTML的代理。试试Privoxy。
我也对UNORDERED_NODE_SNAPSHOT_TYPE
感到不安 - 这听起来像是“复制HTML并给我克隆”,这意味着对克隆的任何更改都不会对浏览器窗口中的DOM产生任何影响。使用ORDERED_NODE_ITERATOR_TYPE
代替或完全避免使用XPath。