Используя Javascript, чтобы нажать на данную кнопку и открыть ее в новом окне

Когда эта страница загружается, я хочу автоматически смоделировать send me this thing кнопка, открывая ее в новом окне (или новой вкладке)

  • Там будет только один send me this thing кнопка на любой странице, как это

Зачем?

Это для Greasekit на Fluid.app, который похож на Greasemonkey.

1 ответ

Эта кнопка является ссылкой, и эта страница использует jQuery. Таким образом, вы можете получить кнопку, как:

var buyItBtn = $("a:contains('Send me this thing')");

Затем измените ссылку, чтобы открыть в новой вкладке / окне.
Затем нажмите на ссылку.

Код является:

//-- Note  that :contains() is case-sensitive.
var buyItBtn = $("a:contains('Send me this thing')");
buyItBtn.attr ("target", "_blank");
buyItBtn[0].click ();

НО, знайте, что современные блокировщики всплывающих окон будут блокировать это, я не знаю, какой веб-набор встроен в вашу версию Fluid. Скажите своему блокировщику всплывающих окон, чтобы разрешить именно эти всплывающие окна.

Кроме того, поскольку это Greasekit, вам нужно внедрить приведенный выше код, поэтому полный пользовательский скрипт будет выглядеть примерно так:

// ==UserScript==
// @name        _Amazon-like store, buy things in a new window
// @include     https://dl.dropboxusercontent.com/u/5546881/*
// @grant       GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
    introduced in GM 1.0.   It restores the sandbox.
*/
function GM_main () {
    //-- Note  that :contains() is case-sensitive.
    var buyItBtn = $("a:contains('Send me this thing')");
    buyItBtn.attr ("target", "_blank");
    buyItBtn[0].click ();
}

addJS_Node (null, null, GM_main);

function addJS_Node (text, s_URL, funcToRun, runOnLoad) {
    var D                                   = document;
    var scriptNode                          = D.createElement ('script');
    if (runOnLoad) {
        scriptNode.addEventListener ("load", runOnLoad, false);
    }
    scriptNode.type                         = "text/javascript";
    if (text)       scriptNode.textContent  = text;
    if (s_URL)      scriptNode.src          = s_URL;
    if (funcToRun)  scriptNode.textContent  = '(' + funcToRun.toString() + ')()';

    var targ = D.getElementsByTagName ('head')[0] || D.body || D.documentElement;
    targ.appendChild (scriptNode);
}
Другие вопросы по тегам