tl; dr:新しいタブで開くブックマークレット:指定されたドメインからのランダムリンク(指定された複数のhtmlクラス)と現在のログインで機能するコード。ありがとうございました。
屠殺されたコードの短いバージョン:
javascript:
(
var % 20 site = domain.com
function() {
window.location.host == site
void(window.open(document.links[Math.floor(document.querySelectorAll("a.class1, a.class2"))].href, '_blank'))
}();
//beautified with: http://jsbeautifier.org/
関係者:私はしばらくの間検索し、サービスの切り替えを検討しましたが、いくつかは私の特定の要求に近づいたり類似したりしましたが、要求に伴うすべてに対処するのに役立ったものはありませんでした。
特定のドメインのページが現在開いていない場合でも、そのドメインでスクリプトを実行します。実行する情報やデータを取得するためのログイン認証が必要な場合は、既存のセッションを読んだり、連携して作業したりしてください。
特定のドメインホストから、できればcss-selectorsを使用して、特定のhtmlクラス(または実際にはそれ以外)を持つそのドメイン上のすべてのリンクからランダムなリンクを取得します。
結果を新しいタブで開きます。
そのような類似性を破壊することから、結果は次のようになりました:
//bookmarklet
javascript:
//anonymous function+ wrapped code before execution
(
// function global variables for quick substitution
var %20 site = domain.com
function(){
//set domain for script execution
window.location.host == site
//open new tab for
void(window.open(document.links
//random link
[Math.floor
//with specific classes (elements found with css selectors)
(document.querySelectorAll("a.class1, a.class2"))
]//end random-query
.href,'_blank' //end page-open
)//end link-open
)//end "void"
}//end function defintion
//execute
();
//(tried) checked with:
//http://www.javascriptlint.com/online_lint.php
最後に、私はせいぜい基本的なcssの知識を習得しました。このリクエストにヘッドデスク、パーム、またはgtfoモードの誰かがいる場合はお詫び申し上げます。StackExchangeに「警告:私はこれをDIYで作成しました」というタグがないのは残念です。しかし、私はまだ、それぞれの修正と修正が何であるか、そして何であるかを説明するために少し深く入る答えが欲しいです。
何卒よろしくお願い申し上げます。
理論的には、次のコードはあなたが望むことをするはずです:
window.addEventListener('load', function ( ) {
var query = 'a.class1[href], a.class2[href]';
var candidates = document.querySelectorAll(query);
var choice = Math.floor(Math.random() * candidates.length);
window.open(candidates.item(choice).href, 'randomtab');
}, true);
window.location.href = 'http://domain.com';
ただし、ページのアンロード中にイベントリスナーを保持する可能性が悪用される可能性があり、ブラウザーがそのような悪用からユーザーを保護するため、そうではありません。
代わりに、選択したドメインを手動でロードしてから、次のコードを使用してより単純なブックマークレットをクリックすることができます。
var query = 'a.class1[href], a.class2[href]';
var candidates = document.querySelectorAll(query);
var choice = Math.floor(Math.random() * candidates.length);
window.open(candidates.item(choice).href, 'randomtab');
上記をjavascript:(function ( ) {
...})();
でラップして前と同じように縮小することもできますが、縮小して前に叩くだけですでに機能しますjavascript:
。
まったくの初心者で「DIY」コードを投稿するというあなたの状況は理解していますが、このコードが機能する理由と機能しない理由を段階的に説明するつもりはありません。上記のコードの最初のバージョンは、初心者に説明するには複雑であり、問題のコードに関する問題のリストは長すぎて、すべてを説明することはできません。より多くのJavascriptを勉強することで、より良い結果が得られます。チュートリアルの良いリソースはMDNです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加