[英]Greasemonkey script to change a value on a page
我想更改此值:
<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並運行腳本,並請注意該站點的ridicoulas設計。
無需使用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>
屬性已更改,但未嘗試播放視頻,因為我不會安裝所需的插件。 嘗試//param[@name="fullScreen" and @value="0"]
來找到該節點,但是我不確定這是否可行:我主要關心的是啟動順序。 Greasemonkey腳本是否在頁面加載之后以及創建播放器之前立即運行? 在啟動后更改值時,播放器代碼會更新嗎?
因此,使用代理修改HTML可能會更好,甚至在瀏覽器看到HTML之前也可以。 嘗試Privoxy 。
對於UNORDERED_NODE_SNAPSHOT_TYPE
,我也感到不安-聽起來像“復制HTML並給我克隆”,這意味着對克隆的任何更改都不會影響瀏覽器窗口中的DOM。 請改用ORDERED_NODE_ITERATOR_TYPE
或完全避免使用XPath。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.