标签: userscripts

Chrome用户脚本错误:"不安全的JavaScript尝试访问框架"

// the iframe of the div I need to access
var iframe = document.getElementsByTagName("iframe")[2];
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;

// resize 'player' in the iframe
innerDoc.getElementById('player').width = "1000px";
innerDoc.getElementById('player').height = "650px";
Run Code Online (Sandbox Code Playgroud)

在此脚本的用户脚本中运行:http://www.free-tv-video-online.me/player/sockshare.php?id = 24DA6EAA2561FD60

为什么Chrome出现此错误并导致脚本失败?:

Unsafe JavaScript attempt to access frame with URL http://www.sockshare.com/embed/24DA6EAA2561FD60 
from frame with URL http://www.free-tv-video-online.me/player/sockshare.php?id=24DA6EAA2561FD60. 
Domains, protocols and ports must match.
Run Code Online (Sandbox Code Playgroud)

(我只是一个基本的Javascript用户)


最后的代码,非常感谢回答者:

// ==UserScript==
// @name       Resize
// @include    http://www.free-tv-video-online.me/player/sockshare.php*
// @include    http://www.sockshare.com/*
// ==/UserScript==

if (!(window.top === window.self)) {
    var player …
Run Code Online (Sandbox Code Playgroud)

javascript iframe greasemonkey google-chrome userscripts

4
推荐指数
1
解决办法
1万
查看次数

使用用户脚本嵌入网站图标

我有一个小脚本,旨在将 Google Music 上的 favicon 从 Play Store 图标更改为实际可识别为与音乐相关的内容:

// ==UserScript==
// @name           Update Google Music Favicon
// @version        1.0
// @description    Replaces Google Music icon with something almost like the old one but much uglier.
// @include        http://play.google.com/music/*
// @include        https://play.google.com/music/*
// ==/UserScript==

window.addEventListener('load', function() {
    a=document.createElement("link");
    a.setAttribute("type", "image/jpeg");
    a.setAttribute("rel", "icon");
    a.setAttribute("href","data:image/jpeg;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABILAAASCwAAAAAAAAAAAAAAAAAAAAAAAEEzUgBwUwAAQjo+EHlnZnF7aWhzWlBQEkE8Owx/c3JrinZ1d1hPVRb/rkAALjhpAAAAAAAAAAAAAAAAADoABwBnwP8AXKD/IkxytqZqYVn1dGRj9k9GRkM2NDMzcGZl74Rwb/lRf6uwRqz5LHTy/wAlDxgAAAAAAAAAAABzuuYAdKGpDEqX/6coY8L/YVpN/2RbWvtBOztNLy8vP2ZfXvd6Z1z/MnSt/zif/7U4X6gSQonhAAAAAAAAAAAAac//AFmn30kqp//0EWG4/2pcT/9hWlr7PTg4TS8vL0BjXl73e2dc/x5fpP8Vf/r5LHTHWTGF+QAAAAAAAgAAABvJ/wAWl+R3AaH3/xl7uP+EcGn/YVxb+zQwME0xMTFAY2Bf93pnXf8cVp7/AHv5/w1/44wJrv8AAgUAAAN+4wADZbkSAJv8twCU+f8ccrX/kHx7/2toaPs1MjJNMzMzQGZjaPd1Zlz/HU+U/wCG9P8Brf7JA4XQHQCn/wAA//8AGZntcg6X/vwMkfr/HH6+/4l6c/90bm77Q0FBTTQzM0BqaGj3gXFp/x51pf8Jm/n/D6P8/wWx/4hBAAACU1CUB0uy9bIacLvlS6/0lymLve6CeHP/dXV0+zc3Nks7Ozs+gICA9ot8e/8hiKj1O8T8niSAueAbsPTDE3nPDw+M/wAmf91oDFOwaa3//wxakrV3Z2hj1W1oaNk8PDwwXV1dJIiIiNFwcGvbVYicgpP//xMWZaJfGI7XeAjn/wAAsf8AI4Tnbxpr02gTo/8AJgoAAl5aUyBqamohY2NjA4WFhQKIiIgecGxqIjkZCQMQs/8AHonLWhOx+YG/AAABJV+4DiiZ/8Ilk/zLElS8GBR5+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWlNwAF2KYEBq1970gyv/SEZHVGDcAAAIMeP+PGor//xeC9YcELHYIDGbeAAAAAAAAAAAAAAAAAAAAAAALpMgAADUxBBLK9XQTxP/8Dqb8ohVIjwYReP8AGGTbJg1w99MKdf/4DJL2lhCz0CwJb3QH/wAAAAD//wA0WEMFEq3MJArH+IYIzP/yCbv63wuK5jIKr/8AP0iaAACq/wAhWuRBEYr62Qmx/v8KsP/kDL7/sQfK/5AZuuuNE8P7rAq9/98IwP7/C8T/4Q64/k8A//8AEYfBAAAAAABQeNcAAP//ACqn7y8grPunFav+7wiq//8FrP//Ba7//wey//8Rt//yFrr7sBjC/zgiAAAAIK/9AAAAAAAAAAAAAAAAAK2BxAA/uf8AUqzwCjy0+UA1tfyBMLb8pSy2/KYruPuFLbr5Ri+w7g0q3v8AYUuiAAAAAAAAAAAA8A8AAOAHAADAAwAAwAMAAMADAACAAQAAgAAAAAAAAACAAQAAkAgAAA/wAAAH4AAAgIEAAMADAADgAwAA8A8AAA==");
    document.documentElement.firstChild.appendChild(a);
}, false);
Run Code Online (Sandbox Code Playgroud)

不幸的是,这似乎不起作用,即使我在 JS 控制台中输入它。我试过用 Stack Overflow favicon URL 替换它,但这也不起作用,但将其切换到 google.com/favicon.ico 工作 - 我猜问题是 favicon 不是来自同一个域? 有没有解决的办法?我在调试控制台中看不到任何有用的东西。

我要连接的网址是:https : //play.google.com/music/listen?u=0#/now

javascript google-chrome userscripts

4
推荐指数
1
解决办法
1486
查看次数

如何使用用户脚本将页面切换到不同的域?

我需要使用 Greasemonkey 替换 URL 中的特定文本。

例如,如果页面是:

http://adf.st/?u=https%3A%2F%2Finstagram.com%2Fp%2F4XOVEaD5Ca%2F
Run Code Online (Sandbox Code Playgroud)

然后该脚本将使用以下 URL:

http://adfa.cc/?u=https%3A%2F%2Finstagram.com%2Fp%2F4XOVEaD5Ca%2F
Run Code Online (Sandbox Code Playgroud)

注意:后面的其余文本adf.st/不固定。

javascript redirect greasemonkey userscripts tampermonkey

4
推荐指数
1
解决办法
571
查看次数

如何强制 chrome 下载文件而不打开它们?

我在 chrome tampermonkey 的用户脚本中使用 window.location.href=" link .mp4" 但不是开始下载 chrome 是打开文件并开始播放它。我在变量中有一个文件链接,如果有任何方法可以触发直通 idm,我也会使用 idm。

javascript google-chrome userscripts

4
推荐指数
1
解决办法
8989
查看次数

以编程方式填写reactjs表单

我正在写一个用户脚本,我无法填写reactjs制作的表格.我的代码:

document.querySelector("#id-username").value = "name@domain.xx";
// Attempt to notify framework using input event
document.querySelector("#id-username").dispatchEvent(new Event("input", {data:"name@domain.xx"}));
// Attempt to notify framework using change event
document.querySelector("#id-username").dispatchEvent(new Event("change"));
// This doesn't help either
document.querySelector("#id-username").dispatchEvent(new Event("blur"));
// Submit the form using button (it's AJAX form)
document.querySelector("fieldset div.wrap button").click();
Run Code Online (Sandbox Code Playgroud)

我在加载页面后将此代码输入到开发工具控制台中.然而,表格忽略了我的编程输入:

图片描述

表格可以在这里找到.我的工作目的是自动登录到给定的网站.我提供了特定的URL,但我期望这个问题的通用解决方案(例如,使用一些reactjs API)可以应用于任何reactjs表单.其他用户可能需要此解决方案来为其站点编写自动化测试.

javascript greasemonkey userscripts reactjs

4
推荐指数
2
解决办法
1096
查看次数

如何通过JavaScript从页面中删除链接?

我想为我的浏览器(Opera,Chromium)编写一个用户脚本,删除包含预定义关键字的链接.例如,当链接成为黑名单的一部分<a href="foo">bar</a>时,链接应该从页面中消失foo.

如何删除页面中的重复链接,除了首先显示如何获取和过滤网站,但我想通过用户脚本直接执行此操作.我是如何在每个页面加载时应用过滤器的?

javascript userscripts

3
推荐指数
1
解决办法
1265
查看次数

我可以使用什么代替DOMSubtreeModified?

我正在为opera的用户脚本工作,而opera不支持DOMSubtreeModified,是否有任何替代子树修改的方法?

注意:我只在javascript中寻找解决方案.(不是jquery或任何JavaScript库)

谢谢.

javascript opera dom userscripts

3
推荐指数
1
解决办法
4236
查看次数

window.load总是不会在chrome上激活?

我有这个用户名:

// ==UserScript==
// @name          test
// @namespace     test
// @description   show's an alert on load
// @include       http://*
// @include       https://*
// ==/UserScript==

window.addEventListener('load', function(){alert("loaded");}, false);
Run Code Online (Sandbox Code Playgroud)

这在所有页面上都适用于Firefox,但在某些情况下在Chrome上根本不起作用.

一个例子是这个网站:http://lexin.nada.kth.se/lexin/ 输入地址中的链接并点击进入,正常加载页面但没有弹出警报.如果按F5刷新页面,则会显示弹出窗口.

对这种奇怪的行为有一些解释吗?

javascript greasemonkey google-chrome onload userscripts

3
推荐指数
1
解决办法
6100
查看次数

如何使用用户脚本覆盖函数?

我想更改网页显示的部分内容,是否可以用usercript覆盖一个函数?

下面是我想覆盖的功能(也可以在这里找到):

function StartDrawing() {
    if ((typeof (systemsJSON) != "undefined") && (systemsJSON != null)) {
        var stellarSystemsLength = systemsJSON.length;
        $('#mapDiv').empty();
        if (stellarSystemsLength > 0) {
            InitializeRaphael();

            var i = 0;
            for (i = 0; i < stellarSystemsLength; i++){
                var stellarSystem = systemsJSON[i];
                DrawSystem(stellarSystem)
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这将允许我运行自己的绘图算法.

如何使用chrome(或Firefox)中的用户脚本执行此操作?

javascript userscripts

3
推荐指数
1
解决办法
1万
查看次数

用户脚本通知适用于Chrome而非Firefox?

如果目标页面上存在某些内容,我有一个用户脚本会弹出通知.

在Tampermonkey/Chrome下,这不是问题.我可以使用该GM_Notification()功能轻松创建通知.

当我尝试在Firefox下执行此操作时,它没有任何相同的行为.
检查日志中没有关于该功能的错误,也没有任何通知弹出.

下面是一些示例代码,它们在Firefox + Greasemonkey或Firefox + Tampermonkey中不起作用,但在Chrome + Tampermonkey中有效:

// ==UserScript==
// @name        Test Notifier
// @include     *
// @grant       GM_notification
// @grant       window.focus
// ==/UserScript==

console.log('I am a pretty test script');

var notificationDetails = {
    text: 'THIS IS A TEST NOTIFICATION!!!',
    title: 'TEST',
    timeout: 15000,
    onclick: function() { window.focus(); },
  };
GM_notification(notificationDetails);
Run Code Online (Sandbox Code Playgroud)

这是Firefox的标准行为吗?它是否以完全不同的方式处理HTML5通知(如果有的话)?在Firefox用户脚本中启用通知的常见做法是什么?

javascript greasemonkey userscripts tampermonkey

3
推荐指数
1
解决办法
2731
查看次数