スマートで簡単なのは、GM_getResourceText()
Docを使用することです。
そうすれば、ポップアップ ページを簡単な方法で作成し、GM スクリプトと同じようにページをローカルにロードし、スマート ポップアップに 3 行の簡単なコードを入力するだけです。
たとえば、次のように 2 つのファイルを作成します。
Popup_fun.user.js :
// ==UserScript==
// @name _Fancy popups, the smart way
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @include http://stackoverflow.com/questions/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @resource popupSrcRz PopupPage.htm
// @grant GM_getResourceText
// ==/UserScript==
//-- Don't refire on the popup.
if ( $("#gmDontFireOnMe").length === 0) {
$("body").prepend (
'<button id="gmLaunchPopup">Launch a fancy popup</button>'
);
$("#gmLaunchPopup").click (openWin);
}
function openWin () {
var popupSrc = GM_getResourceText ("popupSrcRz");
myWindow=window.open ('','','width=400,height=500');
myWindow.document.write (popupSrc);
myWindow.document.close ();
myWindow.focus ();
}
PopupPage.htm :
<!DOCTYPE html>
<html><head>
<title>My fancy popup</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
body { padding: 0 3ex; }
table {
margin: 1em;
padding: 0;
border-collapse: collapse;
border: 1px solid darkBlue;
}
th, td {
margin: 0;
padding: 0.8ex 1em;
vertical-align: top;
text-align: left;
border: 1px solid darkBlue;
}
th { background: lightYellow; }
img { max-width: calc(100% - 3ex); }
</style>
</head><body>
<p id="gmDontFireOnMe">I'm the popup page.</p>
<p>Here's a table:</p>
<table class="">
<tr><th>Thing</th><th>Qty</th></tr>
<tr><td>Flux</td><td>88</td></tr>
<tr><td>Capacitor</td><td>88</td></tr>
</table>
<p>Here's an image:</p>
<img src="http://media2.s-nbcnews.com/j/MSNBC/Components/Photo/_new/tdy-121010-puppies-03.grid-6x2.jpg"
alt="Awwww!">
</a>
</body></html>
両方のファイルを同じディレクトリに保存し (ただし、システムの一時フォルダーには保存しません)、Popup_fun.user.js
Firefox の[開く] メニュー ( CtrlO) を使用して をインストールします。このページをリロードしてボタンをクリックすると、書式設定された素敵なポップアップが表示されます。
スクリプトをどこかにホストしている場合はPopupPage.htm
、同じフォルダーにコピーするだけです。スクリプトのインストール時に自動的にインストールされます。