AutoPagerize_Console_simple

AutoPagerizeをサポートするボタン(シンプルバージョン)

  1. // ==UserScript==
  2. // @name AutoPagerize_Console_simple
  3. // @namespace phodra
  4. // @description AutoPagerizeをサポートするボタン(シンプルバージョン)
  5. // @include http://*
  6. // @include https://*
  7. // @version 4.03
  8. // @noframes
  9. // @grant GM_getValue
  10. // @grant GM_setValue
  11. // @grant GM_addStyle
  12. // @grant GM_getResourceURL
  13. // @grant GM_getResourceText
  14. // @resource res_style http://phodra.web.fc2.com/script/AutoPagerize_Console/css_simple403.css
  15. // ==/UserScript==
  16.  
  17. (function (){
  18. // APが有効なページであるのか
  19. // 0:無効なページ 1: 2:
  20. const res_apState = {
  21. inhibit: 0,
  22. valid_addon: 1,
  23. valid_script: 2
  24. };
  25. var apState = res_apState.inhibit;
  26. const res_apValid = {
  27. enable: 'enable',
  28. disable: 'disable',
  29. _N: 'ap_valid'
  30. };
  31. var apValid;
  32. const res_dsptim = {
  33. always: "always",
  34. valid: "valid",
  35. loaded: "loaded",
  36. _N: "dsptim"
  37. };
  38. var dspTim;
  39. const res_posBasis = 'posBasis';
  40. var posBasis;
  41. const res_unit = {
  42. pxl: 'px',
  43. pct: '%',
  44. _N: 'posUnit'
  45. };
  46. var unit;
  47. const res_transUnhover = 'transUnhover';
  48. var transUnhover;
  49.  
  50. const res_posDst = {
  51. _OPT: 'posDst_opt',
  52. _SCR: 'posDst_scr',
  53. _TBL: 'posDst_tbl'
  54. };
  55. var posDst = {};
  56. /// 配置形状
  57. const res_posFrm = {
  58. _OPT: 'posFrm_opt',
  59. up: 'up',
  60. down: 'down',
  61. left: 'left',
  62. right:'right',
  63. _IOP: 'posFrm_iop',
  64. noset: 'noset',
  65. _SCR: 'posFrm_scr',
  66. slim: 'Slim',
  67. square: 'Square',
  68. _TBL: 'posFrm_tbl',
  69. pile: 'Pile',
  70. row: 'Row'
  71. };
  72. var posFrm = {};
  73. /// 自動非表示
  74. const res_posHid = {
  75. _OPT: 'posHid_opt',
  76. _SCR: 'posHid_scr',
  77. _TBL: 'posHid_tbl'
  78. };
  79. var posHid = {};
  80.  
  81.  
  82. // スタイル追加
  83. var apcStyle = GM_addStyle(GM_getResourceText("res_style"));
  84.  
  85.  
  86.  
  87.  
  88.  
  89. // コントロール配置
  90. /// パネル(最親)
  91. var $pnl = document.createElement("div");
  92. $pnl.id = "apc-pnl";
  93. document.body.appendChild($pnl);
  94. const APC_BTN = "apc-button";
  95.  
  96. ///pnl/ オプショナー
  97. var $p_opt = document.createElement("div");
  98. $p_opt.id = "apc-p_opt";
  99. $pnl.appendChild($p_opt);
  100.  
  101. ///pnl/opt/ トグルボタン (enable/disable)
  102. var $po_tgl = document.createElement("div");
  103. $po_tgl.id = "apc-po_tgl";
  104. $po_tgl.className = APC_BTN;
  105. $p_opt.appendChild($po_tgl);
  106. ///pnl/opt// トグルボタン 画像
  107. var $po_tglImg = document.createElement("img");
  108. $po_tgl.appendChild($po_tglImg);
  109.  
  110. ///pnl/opt// コンフィグボタン
  111. var $po_cfg = document.createElement("div");
  112. $po_cfg.id = "apc-po_cfg";
  113. $po_cfg.className = APC_BTN;
  114. $po_cfg.title = "Open Config";
  115. $p_opt.appendChild($po_cfg);
  116. var $po_cfgImg = document.createElement("img");
  117. $po_cfgImg.setAttribute('alt', "c");
  118. $po_cfg.appendChild($po_cfgImg);
  119.  
  120.  
  121.  
  122. ///pnl/ スクローラー
  123. var $p_scr = document.createElement("div");
  124. $p_scr.id = "apc-p_scr";
  125. $pnl.appendChild($p_scr);
  126. ///pnl/scr/ 最上部へ移動
  127. var $ps_top = document.createElement("div");
  128. $ps_top.className = APC_BTN;
  129. $ps_top.id = "apc-ps_top";
  130. $ps_top.title = "Move to Top";
  131. $p_scr.appendChild($ps_top);
  132. var $ps_topImg = document.createElement("span");
  133. $ps_topImg.textContent = "|<";
  134. $ps_top.appendChild($ps_topImg);
  135. ///pnl/scr/ 最下部へ移動
  136. var $ps_btm = document.createElement("div");
  137. $ps_btm.id = "apc-ps_btm";
  138. $ps_btm.className = APC_BTN;
  139. $ps_btm.title = "Move to Bottom";
  140. $p_scr.appendChild($ps_btm);
  141. var $ps_btmImg = document.createElement("img");
  142. $ps_btmImg.textContent = ">|";
  143. $ps_btm.appendChild($ps_btmImg);
  144. ///pnl/scr/ 前のページ
  145. var $ps_prv = document.createElement("div");
  146. $ps_prv.className = APC_BTN;
  147. $ps_prv.id = "apc-ps_prv";
  148. $ps_prv.title = "Move to Previous";
  149. $p_scr.appendChild($ps_prv);
  150. var $ps_prvImg = document.createElement("img");
  151. $ps_prvImg.textContent = "<";
  152. $ps_prv.appendChild($ps_prvImg);
  153. ///pnl/scr/ 次のページ
  154. var $ps_nxt = document.createElement("div");
  155. $ps_nxt.className = APC_BTN;
  156. $ps_nxt.id = "apc-ps_nxt";
  157. $ps_nxt.title = "Move to Next";
  158. $p_scr.appendChild($ps_nxt);
  159. var $ps_nxtImg = document.createElement("img");
  160. $ps_nxtImg.textContent = ">";
  161. $ps_nxt.appendChild($ps_nxtImg);
  162.  
  163.  
  164.  
  165. ///pnl/ ページテーブル
  166. var $p_tbl = document.createElement("div");
  167. $p_tbl.id = "apc-p_tbl";
  168. ///pnl/tbl/ ページ数表示(summary)
  169. var $pt_smy = document.createElement("div");
  170. $pt_smy.id = "apc-pt_smy";
  171. var $pt_smyNow = document.createElement("span");
  172. var $pt_smyMax = document.createElement("span");
  173. var $pt_smyVnc = document.createElement("span");
  174. $pt_smyNow.textContent = $pt_smyMax.textContent = "1";
  175. $pt_smyVnc.id = "apc-pt_smyVnc";
  176. $pt_smy.appendChild($pt_smyNow);
  177. $pt_smy.appendChild($pt_smyVnc);
  178. $pt_smy.appendChild($pt_smyMax);
  179. $p_tbl.appendChild($pt_smy);
  180. $pnl.appendChild($p_tbl);
  181.  
  182. ///pnl/tbl/ ページリスト
  183. var $pt_lst = document.createElement("ol");
  184. $pt_lst.id = "apc-pt_lst";
  185. $pt_lst.style.display = 'none';
  186. $p_tbl.appendChild($pt_lst);
  187. ///pnl/tbl/ ページリストアイテム(のもと)
  188. var $pt_lstItem = document.createElement("li");
  189. $pt_lstItem.className = "apc-pt_lstItem";
  190. $pt_lst.appendChild($pt_lstItem);
  191.  
  192. // for( var i = 2; i<=10; i++ )
  193. // {
  194. // var $new_pageitem = $pt_lstItem.cloneNode(true);
  195. // PageItem_AddEvent($new_pageitem, "x" + i);
  196. // $pt_lst.appendChild($new_pageitem);
  197. // }
  198.  
  199.  
  200.  
  201.  
  202.  
  203. ///pnl/ コンフィグメニュー包含レイヤー
  204. var $p_menuOuter = document.createElement("div");
  205. $p_menuOuter.id = "apc-p_menuOuter";
  206. $p_menuOuter.style.display = 'none';
  207. document.body.appendChild($p_menuOuter);
  208.  
  209. ///pnl/ コンフィグメニュー
  210. var $p_menu = document.createElement("div");
  211. $p_menu.id = "apc-p_menu";
  212. $p_menuOuter.appendChild($p_menu);
  213.  
  214. ///pnl/menu/ 表示タイミング(Display Timing)
  215. var $pm_dsp = document.createElement("h4");
  216. $pm_dsp.textContent = "Display Timing";
  217. $pm_dsp.title = "表示するタイミング";
  218. $p_menu.appendChild($pm_dsp);
  219. ///pnl/menu/timing/ 常に表示
  220. var $pmd_alwLbl = document.createElement("label");
  221. $pmd_alwLbl.className = "apc-pm_item";
  222. $pmd_alwLbl.for = "apc-pmd_alw";
  223. $pmd_alwLbl.title = "常に表示";
  224. $p_menu.appendChild($pmd_alwLbl);
  225. var $pmd_alw = document.createElement("input");
  226. $pmd_alw.type = 'radio';
  227. $pmd_alw.name = res_dsptim._N;
  228. $pmd_alw.id = "apc-pmd_alw";
  229. $pmd_alwLbl.appendChild($pmd_alw);
  230. $pmd_alwLbl.appendChild( document.createTextNode("always"));
  231. ///pnl/menu/timing/ 二ページ目をロードした時に表示
  232. var $pmd_lodLbl = document.createElement("label");
  233. $pmd_lodLbl.className = "apc-pm_item";
  234. $pmd_lodLbl.for = "apc-pmd_lod";
  235. $pmd_lodLbl.title = "二ページ目をロードした時に表示";
  236. $p_menu.appendChild($pmd_lodLbl);
  237. var $pmd_lod = document.createElement("input");
  238. $pmd_lod.type = 'radio';
  239. $pmd_lod.name = res_dsptim._N;
  240. $pmd_lod.id = "apc-pmd_lod";
  241. $pmd_lodLbl.appendChild($pmd_lod);
  242. $pmd_lodLbl.appendChild(document.createTextNode("loaded a 2nd page"));
  243. ///pnl/menu/timing/ 有効なページでのみ常に表示
  244. var $pmd_vldLbl = document.createElement("label");
  245. $pmd_vldLbl.className = "apc-pm_item";
  246. $pmd_vldLbl.for = "apc-pmd_vld";
  247. $pmd_vldLbl.title = "AutoPagerizeが有効なページであれば表示";
  248. $p_menu.appendChild($pmd_vldLbl);
  249. var $pmd_vld = document.createElement("input");
  250. $pmd_vld.type = 'radio';
  251. $pmd_vld.name = res_dsptim._N;
  252. $pmd_vld.id = "apc-pmd_vld";
  253. $pmd_vldLbl.appendChild($pmd_vld);
  254. $pmd_vldLbl.appendChild( document.createTextNode("valid a \"AutoPagerize\""));
  255.  
  256. /// 位置設定
  257. ///pnl/menu/ 位置
  258. var $pm_pos = document.createElement("h4");
  259. $pm_pos.textContent = "Position Setting";
  260. $pm_pos.title = "位置設定";
  261. $p_menu.appendChild($pm_pos);
  262. ///pnl/menu/position/ 基準位置
  263. var $pmp_basLbl = document.createElement("span");
  264. $pmp_basLbl.className = "apc-pm_item";
  265. $pmp_basLbl.title = "基準位置";
  266. $pmp_basLbl.textContent = "basis:";
  267. $p_menu.appendChild($pmp_basLbl);
  268. var $pmp_bas = document.createElement("input");
  269. $pmp_bas.id = "apc-pmp_bas";
  270. $pmp_bas.type = 'number';
  271. $pmp_bas.name = res_posBasis;
  272. $pmp_basLbl.appendChild($pmp_bas);
  273. ///pnl/menu/position/ 使用単位
  274. var $pmp_unt = document.createElement("select");
  275. $pmp_unt.id = "apc-pmp_unt";
  276. var $pmp_unt_0 = document.createElement("option");
  277. $pmp_unt_0.textContent = res_unit.pxl;
  278. $pmp_unt.appendChild($pmp_unt_0);
  279. var $pmp_unt_1 = document.createElement("option");
  280. $pmp_unt_1.textContent = res_unit.pct;
  281. $pmp_unt.appendChild($pmp_unt_1);
  282. $pmp_basLbl.appendChild($pmp_unt);
  283. ///pnl/menu/position/ アンホバーなら透過させるか
  284. var $pmp_tuhLbl= document.createElement("label");
  285. $pmp_tuhLbl.className = "apc-pm_item";
  286. $pmp_tuhLbl.for = "apc-pmp_tuh";
  287. $pmp_tuhLbl.title = "カーソルが乗っていない時、背景を透過";
  288. $pmp_tuhLbl.textContent = "transparent in unhoving:";
  289. $p_menu.appendChild($pmp_tuhLbl);
  290. var $pmp_tuh = document.createElement("input");
  291. $pmp_tuh.id = "apc-pmp_tuh";
  292. $pmp_tuh.type = 'checkbox';
  293. $pmp_tuhLbl.appendChild($pmp_tuh);
  294. /// 基準位置からの差
  295. ///pnl/menu/position/ オプショナー
  296. var $pmp_opt = document.createElement("div");
  297. $pmp_opt.className = "apc-pmp_box";
  298. $p_menu.appendChild($pmp_opt);
  299. var $pmp_optH = document.createElement("h5");
  300. $pmp_optH.textContent = "Optioner";
  301. $pmp_opt.appendChild($pmp_optH);
  302. ///pnl/menu/position/optioner/ 基準位置からの差
  303. var $pmpo_dstLbl = document.createElement("span");
  304. $pmpo_dstLbl.className = "apc-pm_item";
  305. $pmpo_dstLbl.title = "基準位置からの差";
  306. $pmpo_dstLbl.textContent = "distance:";
  307. $pmp_opt.appendChild($pmpo_dstLbl);
  308. var $pmpo_dst = document.createElement("input");
  309. $pmpo_dst.id = "apc-pmpo_dst";
  310. $pmpo_dst.type = 'number';
  311. $pmpo_dst.name = "pmpo_dst";
  312. $pmpo_dstLbl.appendChild($pmpo_dst);
  313. $pmpo_dstLbl.appendChild(document.createTextNode("px"));
  314. ///pnl/menu/position/optioner/ 配置形状
  315. var $pmpo_frmLbl = document.createElement("span");
  316. $pmpo_frmLbl.className = "apc-pm_item";
  317. $pmpo_frmLbl.title = "配置形状";
  318. $pmpo_frmLbl.textContent = "validAP form:";
  319. $pmp_opt.appendChild($pmpo_frmLbl);
  320. var $pmpo_frm = document.createElement("select");
  321. $pmpo_frm.id = "apc-pmpo_frm";
  322. $pmpo_frmLbl.appendChild($pmpo_frm);
  323. var $pmpo_frm_0 = document.createElement("option");
  324. $pmpo_frm_0.textContent = "Up";
  325. $pmpo_frm.appendChild($pmpo_frm_0);
  326. $pmpo_frm_0.value = res_posFrm.up;
  327. var $pmpo_frm_1 = document.createElement("option");
  328. $pmpo_frm_1.textContent = "Down";
  329. $pmpo_frm.appendChild($pmpo_frm_1);
  330. $pmpo_frm_1.value = res_posFrm.down;
  331. var $pmpo_frm_2 = document.createElement("option");
  332. $pmpo_frm_2.textContent = "Left";
  333. $pmpo_frm.appendChild($pmpo_frm_2);
  334. $pmpo_frm_2.value = res_posFrm.left;
  335. // var $pmpo_frm_3 = document.createElement("option");
  336. // $pmpo_frm_3.textContent = "Right";
  337. // $pmpo_frm_3.value = res_posFrm.right;
  338. // $pmpo_frm.appendChild($pmpo_frm_3);
  339. // $pmpo_frm.value = posFrm.opt;
  340. ///pnl/menu/position/optioner/ 配置形状afix
  341. var $pmpo_ifmLbl = document.createElement("span");
  342. $pmpo_ifmLbl.className = "apc-pm_item";
  343. $pmpo_ifmLbl.title = "AP対象でないページでの配置形状";
  344. $pmpo_ifmLbl.textContent = "inhibited form:";
  345. $pmp_opt.appendChild($pmpo_ifmLbl);
  346. var $pmpo_ifm = document.createElement("select");
  347. $pmpo_ifm.id = "apc-pmpo_ifm";
  348. $pmpo_ifmLbl.appendChild($pmpo_ifm);
  349. var $pmpo_ifm_0 = document.createElement("option");
  350. $pmpo_ifm_0.textContent = "No Set";
  351. $pmpo_ifm.appendChild($pmpo_ifm_0);
  352. $pmpo_ifm_0.value = res_posFrm.noset;
  353. var $pmpo_ifm_1 = document.createElement("option");
  354. $pmpo_ifm_1.textContent = "Up";
  355. $pmpo_ifm.appendChild($pmpo_ifm_1);
  356. $pmpo_ifm_1.value = res_posFrm.up;
  357. var $pmpo_ifm_2 = document.createElement("option");
  358. $pmpo_ifm_2.textContent = "Down";
  359. $pmpo_ifm.appendChild($pmpo_ifm_2);
  360. $pmpo_ifm_2.value = res_posFrm.down;
  361. var $pmpo_ifm_3 = document.createElement("option");
  362. $pmpo_ifm_3.textContent = "Left";
  363. $pmpo_ifm.appendChild($pmpo_ifm_3);
  364. $pmpo_ifm_3.value = res_posFrm.left;
  365. ///pnl/menu/position/optioner/ 自動非表示
  366. var $pmpo_hidLbl= document.createElement("label");
  367. $pmpo_hidLbl.className = "apc-pm_item";
  368. $pmpo_hidLbl.for = "apc-pmpo_hid";
  369. $pmpo_hidLbl.title = "自動非表示";
  370. $pmpo_hidLbl.textContent = "auto hide:";
  371. $pmp_opt.appendChild($pmpo_hidLbl);
  372. var $pmpo_hid = document.createElement("input");
  373. $pmpo_hid.id = "apc-pmpo_hid";
  374. $pmpo_hid.type = 'checkbox';
  375. $pmpo_hidLbl.appendChild($pmpo_hid);
  376. ///pnl/menu/position/ スクローラー
  377. var $pmp_scr = document.createElement("div");
  378. $pmp_scr.className = "apc-pmp_box";
  379. $p_menu.appendChild($pmp_scr);
  380. var $pmp_scrH = document.createElement("h5");
  381. $pmp_scrH.textContent = "Scroller";
  382. $pmp_scr.appendChild($pmp_scrH);
  383. ///pnl/menu/position/scroller/ 基準位置からの差
  384. var $pmps_dstLbl = document.createElement("span");
  385. $pmps_dstLbl.title = "基準位置からの差";
  386. $pmps_dstLbl.textContent = "distance:";
  387. $pmp_scr.appendChild($pmps_dstLbl);
  388. var $pmps_dst = document.createElement("input");
  389. $pmps_dst.id = "apc-pmps_dst";
  390. $pmps_dst.type = 'number';
  391. $pmps_dst.name = "pmps_dst";
  392. $pmps_dstLbl.appendChild($pmps_dst);
  393. $pmps_dstLbl.appendChild(document.createTextNode(" px"));
  394. ///pnl/menu/position/scroller/ 配置形状
  395. var $pmps_frmLbl = document.createElement("span");
  396. $pmps_frmLbl.title = "配置形状";
  397. $pmps_frmLbl.textContent = "form:";
  398. $pmp_scr.appendChild($pmps_frmLbl);
  399. var $pmps_frm = document.createElement("select");
  400. $pmps_frm.id = "apc-pmps_frm";
  401. var $pmps_frm_1 = document.createElement("option");
  402. $pmps_frm_1.textContent = res_posFrm.slim;
  403. $pmps_frm.appendChild($pmps_frm_1);
  404. $pmps_frm_1.value = res_posFrm.slim;
  405. var $pmps_frm_2 = document.createElement("option");
  406. $pmps_frm_2.textContent = res_posFrm.square;
  407. $pmps_frm.appendChild($pmps_frm_2);
  408. $pmps_frm_2.value = res_posFrm.square;
  409. $pmps_frmLbl.appendChild($pmps_frm);
  410. ///pnl/menu/position/optioner/ 自動非表示
  411. var $pmps_hidLbl= document.createElement("label");
  412. $pmps_hidLbl.for = "apc-pmps_hid";
  413. $pmps_hidLbl.title = "自動非表示";
  414. $pmps_hidLbl.textContent = "auto hide:";
  415. $pmp_scr.appendChild($pmps_hidLbl);
  416. var $pmps_hid = document.createElement("input");
  417. $pmps_hid.id = "apc-pmps_hid";
  418. $pmps_hid.type = 'checkbox';
  419. $pmps_hidLbl.appendChild($pmps_hid);
  420. ///pnl/menu/position/ ページテーブル
  421. var $pmp_tbl = document.createElement("div");
  422. $pmp_tbl.className = "apc-pmp_box";
  423. $p_menu.appendChild($pmp_tbl);
  424. var $pmp_tblH = document.createElement("h5");
  425. $pmp_tblH.textContent = "Page Table";
  426. $pmp_tbl.appendChild($pmp_tblH);
  427. ///pnl/menu/position/pagetable/ 基準位置からの差
  428. var $pmpt_dstLbl = document.createElement("span");
  429. $pmpt_dstLbl.title = "基準位置からの差";
  430. $pmpt_dstLbl.textContent = "distance:";
  431. $pmp_tbl.appendChild($pmpt_dstLbl);
  432. var $pmpt_dst = document.createElement("input");
  433. $pmpt_dst.id = "apc-pmpt_dst";
  434. $pmpt_dst.type = 'number';
  435. $pmpt_dst.name = "pmpt_dst";
  436. $pmpt_dstLbl.appendChild($pmpt_dst);
  437. $pmpt_dstLbl.appendChild(document.createTextNode(" px"));
  438. ///pnl/menu/position/pagetable/ 配置形状
  439. var $pmpt_frmLbl = document.createElement("span");
  440. $pmpt_frmLbl.title = "配置形状";
  441. $pmpt_frmLbl.textContent = "form:";
  442. $pmp_tbl.appendChild($pmpt_frmLbl);
  443. var $pmpt_frm = document.createElement("select");
  444. $pmpt_frm.id = "apc-pmpt_frm";
  445. var $pmpt_frm_1 = document.createElement("option");
  446. $pmpt_frm_1.textContent = res_posFrm.pile;
  447. $pmpt_frm.appendChild($pmpt_frm_1);
  448. $pmpt_frm_1.value = res_posFrm.pile;
  449. var $pmpt_frm_2 = document.createElement("option");
  450. $pmpt_frm_2.textContent = res_posFrm.row;
  451. $pmpt_frm.appendChild($pmpt_frm_2);
  452. $pmpt_frm_2.value = res_posFrm.row;
  453. $pmpt_frmLbl.appendChild($pmpt_frm);
  454. ///pnl/menu/position/pagetable/ 自動非表示
  455. var $pmpt_hidLbl= document.createElement("label");
  456. $pmpt_hidLbl.for = "apc-pmpt_hid";
  457. $pmpt_hidLbl.title = "自動非表示";
  458. $pmpt_hidLbl.textContent = "auto hide:";
  459. $pmp_tbl.appendChild($pmpt_hidLbl);
  460. var $pmpt_hid = document.createElement("input");
  461. $pmpt_hid.id = "apc-pmpt_hid";
  462. $pmpt_hid.type = 'checkbox';
  463. $pmpt_hidLbl.appendChild($pmpt_hid);
  464. ///pnl/menu/ 閉じるボタン
  465. var $pm_cls = document.createElement("input");
  466. $pm_cls.id = "apc-pm_cls";
  467. $pm_cls.type = 'button';
  468. $pm_cls.name = "Close";
  469. $p_menu.appendChild($pm_cls);
  470. $pm_cls.value = "Close";
  471.  
  472.  
  473.  
  474.  
  475.  
  476. ///pnl/opt// トグル
  477. var Update_tgl = function(val)
  478. {
  479. if( val == res_apValid.enable )
  480. {
  481. $po_tgl.setAttribute( 'valid', "e");
  482. $po_tglImg.setAttribute( 'alt', "E");
  483. $po_tgl.title = "Toggle AP (Now:Enable)";
  484. }
  485. else
  486. {
  487. $po_tgl.setAttribute( 'valid', "d");
  488. $po_tglImg.setAttribute( 'alt', "D");
  489. $po_tgl.title = "Toggle AP (Now:Disable)";
  490. }
  491. return val;
  492. };
  493. ///pnl/opt// APイベントをキャプチャー
  494. document.addEventListener(
  495. 'AutoPagerizeToggleRequest',
  496. function(){
  497. apValid = Update_tgl(
  498. apValid == res_apValid.enable?
  499. res_apValid.disable:
  500. res_apValid.enable);
  501. GM_setValue( res_apValid._N, apValid);
  502. }
  503. );
  504. document.addEventListener(
  505. 'AutoPagerizeEnableRequest',
  506. function(){
  507. apValid = Update_tgl(res_apValid.enable);
  508. GM_setValue( res_apValid._N, apValid);
  509. }
  510. );
  511. document.addEventListener(
  512. 'AutoPagerizeDisableRequest',
  513. function(){
  514. apValid = Update_tgl(res_apValid.disable);
  515. GM_setValue( res_apValid._N, apValid);
  516. }
  517. );
  518. var FireEvent = function(ename)
  519. {
  520. var e = document.createEvent('Event');
  521. e.initEvent( ename
  522. // apValid == res_apValid.enable?
  523. // 'AutoPagerizeDisableRequest':
  524. // 'AutoPagerizeEnableRequest'
  525. ,true, false);
  526. return document.dispatchEvent(e);
  527. };
  528. ///pnl/opt// トグルボタン クリックでリクエストイベント発火
  529. $po_tgl.addEventListener(
  530. 'click' , function()
  531. {
  532. return FireEvent('AutoPagerizeToggleRequest');
  533. }
  534. );
  535.  
  536. var ap = {
  537. 'page': 0,
  538. 'seam': [0]
  539. };
  540. var scTop = document.documentElement.scrollTop;
  541. var timer;
  542. // スクロール関数(jquery:animate:swingと違いキビキビした感じ)
  543. // target:目的Y位置 bearing:移動方向
  544. var PageScroll = function(target, bearing)
  545. {
  546. clearTimeout(timer);
  547. if( target==scTop ) return;
  548. if( bearing==null ) bearing = target-scTop;
  549. let y = (target-scTop)/5;
  550. window.scrollBy( 0,
  551. bearing>0? Math.ceil(y):
  552. bearing<0? Math.floor(y): 0
  553. );
  554. timer = setTimeout(
  555. function()
  556. {
  557. PageScroll( target, bearing);
  558. }, 10
  559. );
  560.  
  561. if( (bearing<0 && (target>=scTop && target<document.body.clientHeight)) ||
  562. (bearing>0 && target<=scTop) )
  563. {
  564. window.scrollTo( 0, target);
  565. clearTimeout(timer);
  566. }
  567. };
  568. ///pnl/scr/ 最上部へ移動
  569. $ps_top.addEventListener(
  570. 'click', function()
  571. {
  572. PageScroll(0);
  573. }
  574. );
  575. ///pnl/scr/ 最下部へ移動
  576. $ps_btm.addEventListener(
  577. 'click', function()
  578. {
  579. PageScroll( document.body.clientHeight-window.innerHeight );
  580. }
  581. );
  582. ///pnl/scr/ 前のページ
  583. $ps_prv.addEventListener(
  584. 'click', function()
  585. {
  586. PageScroll( scTop==ap.seam[ap.page]?
  587. ap.seam[ap.page-1]: ap.seam[ap.page]
  588. );
  589. }
  590. );
  591. ///pnl/scr/ 次のページ
  592. $ps_nxt.addEventListener(
  593. 'click', function()
  594. {
  595. PageScroll( ap.page+1<ap.seam.length?
  596. ap.seam[ap.page+1]:
  597. document.body.clientHeight-window.innerHeight
  598. );
  599. }
  600. );
  601.  
  602.  
  603.  
  604. ///pnl/tbl/ ページ数表示(summary)
  605. // マウスオーバーでリスト表示
  606. $p_tbl.addEventListener(
  607. 'mouseover' , function()
  608. {
  609. $pt_lst.style.display = 'flex';
  610. }
  611. );
  612. // マウス外すと消える
  613. $p_tbl.addEventListener(
  614. 'mouseout' , function()
  615. {
  616. $pt_lst.style.display = 'none';
  617. }
  618. );
  619. // 新しいページリストアイテムにイベントを追加
  620. var PageItem_AddEvent = function($elm, num)
  621. {
  622. $elm.textContent = num;
  623. // クリックでそのページにスクロール
  624. $elm.addEventListener(
  625. 'click', function()
  626. {
  627. let num = this.textContent-1;
  628. if( num >= 0 && num < ap.seam.length )
  629. PageScroll(ap.seam[num]);
  630. }
  631. );
  632. // ダブルクリックでページ移動
  633. $elm.addEventListener(
  634. 'dblclick', function()
  635. {
  636. let num = this.textContent-2;
  637. if( num >= 0 )
  638. document.getElementsByClassName("autopagerize_link")[num].href;
  639. }
  640. );
  641. };
  642. PageItem_AddEvent($pt_lstItem, 1);
  643.  
  644.  
  645.  
  646. ///pnl/ コンフィグメニュー
  647. // バブリング阻止
  648. $p_menu.addEventListener(
  649. 'click', function(e)
  650. {
  651. e.stopPropagation();
  652. }
  653. );
  654.  
  655.  
  656. ///pnl/menu/ 表示タイミング(timing to display)
  657. var Update_dspTim = function(val)
  658. {
  659. switch(val)
  660. {
  661. case res_dsptim.valid:
  662. $pnl.style.display =
  663. apState == res_apState.inhibit? 'none': 'block';
  664. break;
  665. case res_dsptim.loaded:
  666. $pnl.style.display =
  667. ap.seam.length == 1? 'none': 'block';
  668. break;
  669. case res_dsptim.always:
  670. default:
  671. $pnl.style.display = 'block';
  672. break;
  673. }
  674. return val;
  675. };
  676. $pmd_alw.addEventListener(
  677. 'click', function()
  678. {
  679. dspTim = Update_dspTim(res_dsptim.always);
  680. GM_setValue( res_dsptim._N, dspTim);
  681. }
  682. );
  683. $pmd_lod.addEventListener(
  684. 'click', function()
  685. {
  686. dspTim = Update_dspTim(res_dsptim.loaded);
  687. GM_setValue( res_dsptim._N, dspTim);
  688. }
  689. );
  690. $pmd_vld.addEventListener(
  691. 'click', function()
  692. {
  693. dspTim = Update_dspTim(res_dsptim.valid);
  694. GM_setValue( res_dsptim._N, dspTim);
  695. }
  696. );
  697.  
  698.  
  699. ///pnl/menu/ 位置
  700. // 再配置
  701. var Update_dst = function( $$, val)
  702. {
  703. val = parseInt(val);
  704. $$.style.top =
  705. unit == res_unit.pct?
  706. "calc( " + val + "px + " + posBasis + "% )":
  707. posBasis + val + 'px';
  708. return val;
  709. };
  710. var Update_allDest = function()
  711. {
  712. Update_dst( $p_opt, posDst.opt);
  713. Update_dst( $p_scr, posDst.scr);
  714. Update_dst( $p_tbl, posDst.tbl);
  715. };
  716. ///pnl/menu/position/ 基準位置変更
  717. $pmp_bas.addEventListener(
  718. 'change' , function()
  719. {
  720. posBasis = parseInt(this.value);
  721. Update_allDest();
  722. GM_setValue( res_posBasis, posBasis);
  723. }
  724. );
  725. ///pnl/menu/position/ 使用単位
  726. $pmp_unt.addEventListener(
  727. 'change' , function()
  728. {
  729. unit = this.value;
  730. Update_allDest();
  731. GM_setValue( res_unit._N, unit);
  732. }
  733. );
  734. ///pnl/menu/position/optioner/ 自動非表示
  735. $pmp_tuh.addEventListener(
  736. 'change' , function()
  737. {
  738. transUnhover = this.checked;
  739. GM_setValue( res_transUnhover, transUnhover);
  740. }
  741. );
  742. ///pnl/menu/position/optioner/ 位置ずらし
  743. $pmpo_dst.addEventListener(
  744. 'change' , function()
  745. {
  746. posDst.opt = Update_dst( $p_opt, this.value);
  747. GM_setValue( res_posDst._OPT, posDst.opt);
  748. }
  749. );
  750. ///pnl/menu/position/scroller/ 位置ずらし
  751. $pmps_dst.addEventListener(
  752. 'change' , function()
  753. {
  754. posDst.scr = Update_dst( $p_scr, this.value);
  755. GM_setValue( res_posDst._SCR, posDst.scr);
  756. }
  757. );
  758. ///pnl/menu/position/pagetable/ 位置ずらし
  759. $pmpt_dst.addEventListener(
  760. 'change' , function()
  761. {
  762. posDst.tbl = Update_dst( $p_tbl, this.value);
  763. GM_setValue( res_posDst._TBL, posDst.tbl);
  764. }
  765. );
  766. ///pnl/menu/position// 配置形状
  767. var Update_frm = function( $$, val)
  768. {
  769. $$.setAttribute( 'form', val);
  770. return val;
  771. };
  772. var Update_inhfrm = function( $$, val)
  773. {
  774. $$.setAttribute( 'inhfrm', val);
  775. return val;
  776. };
  777. ///pnl/menu/position/optioner/ 配置形状
  778. $pmpo_frm.addEventListener(
  779. 'change' , function()
  780. {
  781. posFrm.opt = Update_frm( $p_opt, this.value);
  782. GM_setValue( res_posFrm._OPT, posFrm.opt);
  783. }
  784. );
  785. $p_opt.setAttribute( 'form', posFrm.opt);
  786. ///pnl/menu/position/optioner/ 無効時配置形状
  787. $pmpo_ifm.addEventListener(
  788. 'change' , function()
  789. {
  790. posFrm.iop = Update_inhfrm( $p_opt, this.value);
  791. GM_setValue( res_posFrm._IOP, posFrm.iop);
  792. }
  793. );
  794. $p_opt.setAttribute( 'inhfrm', posFrm.iop);
  795. ///pnl/menu/position/scroller/ 配置形状
  796. $pmps_frm.addEventListener(
  797. 'change' , function()
  798. {
  799. posFrm.scr = Update_frm( $p_scr, this.value);
  800. GM_setValue( res_posFrm._SCR, posFrm.scr);
  801. }
  802. );
  803. $p_scr.setAttribute( 'form', posFrm.scr);
  804. ///pnl/menu/position/pagetable/ 配置形状
  805. $pmpt_frm.addEventListener(
  806. 'change' , function()
  807. {
  808. posFrm.tbl = Update_frm( $p_tbl, this.value);
  809. GM_setValue( res_posFrm._TBL, posFrm.tbl);
  810. }
  811. );
  812. $p_tbl.setAttribute( 'form', posFrm.tbl);
  813. ///pnl/menu/position// 自動非表示
  814. var AutoHide_pop = function()
  815. {
  816. $p_opt.setAttribute( 'autohide', 'hoving');
  817. $p_scr.setAttribute( 'autohide', 'hoving');
  818. $p_tbl.setAttribute( 'autohide', 'hoving');
  819. };
  820. $p_opt.addEventListener(
  821. 'mouseover', function()
  822. {
  823. if( posHid.opt == false )
  824. AutoHide_pop();
  825. }
  826. );
  827. $po_tgl.addEventListener( 'mouseover', AutoHide_pop);
  828. $p_scr.addEventListener( 'mouseover', AutoHide_pop);
  829. $p_tbl.addEventListener( 'mouseover', AutoHide_pop);
  830. var AutoHide_hiding = function()
  831. {
  832. if( posHid.opt == true )
  833. $p_opt.setAttribute( 'autohide', 'hidden');
  834. else if(transUnhover)
  835. $p_opt.setAttribute( 'autohide', 'transparent');
  836. else $p_opt.removeAttribute( 'autohide');
  837. if( posHid.scr == true )
  838. $p_scr.setAttribute( 'autohide', 'hidden');
  839. else if(transUnhover)
  840. $p_scr.setAttribute( 'autohide', 'transparent');
  841. else $p_scr.removeAttribute( 'autohide');
  842. if( posHid.tbl == true )
  843. $p_tbl.setAttribute( 'autohide', 'hidden');
  844. else if(transUnhover)
  845. $p_tbl.setAttribute( 'autohide', 'transparent');
  846. else $p_tbl.removeAttribute( 'autohide');
  847. };
  848. $pnl.addEventListener(
  849. 'mouseleave', function()
  850. {
  851. if( $p_menuOuter.style.display == 'none' )
  852. AutoHide_hiding();
  853. }
  854. );
  855. ///pnl/menu/position/optioner/ 自動非表示
  856. $pmpo_hid.addEventListener(
  857. 'change' , function()
  858. {
  859. posHid.opt = this.checked;
  860. GM_setValue( res_posHid._OPT, posHid.opt);
  861. }
  862. );
  863. ///pnl/menu/position/scroller/ 自動非表示
  864. $pmps_hid.addEventListener(
  865. 'change' , function()
  866. {
  867. posHid.scr = this.checked;
  868. GM_setValue( res_posHid._SCR, posHid.scr);
  869. }
  870. );
  871. ///pnl/menu/position/pagetable/ 自動非表示
  872. $pmpt_hid.addEventListener(
  873. 'change' , function()
  874. {
  875. posHid.tbl = this.checked;
  876. GM_setValue( res_posHid._TBL, posHid.tbl);
  877. }
  878. );
  879. /// 最親パネルを領域に合わせる(スキマ対策)
  880. var FixParentPanel = function()
  881. {
  882. let mintop, minlft, maxbtm, maxwid = null;
  883. $p_opt.style.display = 'flex';
  884. $p_scr.style.display = 'flex';
  885. let opt = $p_opt.getClientRects()[0];
  886. let scr = $p_scr.getClientRects()[0];
  887. if( opt!=null && scr!=null ){
  888. mintop = Math.min( opt.top, scr.top);
  889. maxbtm = Math.max( opt.bottom, scr.bottom);
  890. minlft = Math.min( opt.left, scr.left);
  891. maxwid = Math.max( opt.width, scr.width);
  892. }
  893. if( apState != res_apState.inhibit )
  894. {
  895. $p_tbl.style.display = 'block';
  896. let tbl = $p_tbl.getClientRects()[0];
  897. if( tbl != null )
  898. {
  899. mintop = Math.min( mintop, tbl.top);
  900. maxbtm = Math.max( maxbtm, tbl.bottom);
  901. minlft = Math.min( minlft, tbl.left);
  902. maxwid = Math.max( maxwid, tbl.width);
  903. }
  904. }
  905. $pnl.style.top = mintop + 'px';
  906. $pnl.style.left = minlft + 'px';
  907. $pnl.style.width = maxwid + 'px';
  908. $pnl.style.height = maxbtm - mintop + 'px';
  909. $p_opt.style.display = null;
  910. $p_scr.style.display = null;
  911. $p_tbl.style.display = null;
  912. };
  913. window.addEventListener( 'resize', FixParentPanel);
  914.  
  915. // コンフィグ画面表示
  916. var Open_Config = function()
  917. {
  918. $pnl.setAttribute( 'state', 'active');
  919. $p_menuOuter.style.display = 'flex';
  920. AutoHide_pop();
  921. };
  922. $po_cfg.addEventListener(
  923. 'click' , function()
  924. {
  925. Open_Config();
  926. }
  927. );
  928. /// ボタンが見えなくなった時のため、ショートカットで開けるようにする。
  929. /// vimperator使用時は、IGNORE ALL KEYSにして操作すること。
  930. /// Alt + Ctrl + p
  931. document.addEventListener(
  932. 'keydown', function(e)
  933. {
  934. // (shift && e.shiftKey) && (ctrl && e.ctrlKey) && (alt && e.altKey)
  935. if( e.altKey && e.ctrlKey && e.keyCode == 80 )
  936. Open_Config();
  937. }
  938. );
  939. ///pnl/menu/ コンフィグ閉じるボタン
  940. var Close_Config = function()
  941. {
  942. $p_menuOuter.style.display = 'none';
  943. if( apState == res_apState.inhibit )
  944. $pnl.removeAttribute('state');
  945. Update_allDest();
  946. AutoHide_hiding();
  947. FixParentPanel();
  948. };
  949. $p_menuOuter.addEventListener(
  950. 'click' , function()
  951. {
  952. Close_Config();
  953. }
  954. );
  955. $pm_cls.addEventListener(
  956. 'click' , function()
  957. {
  958. Close_Config();
  959. }
  960. );
  961.  
  962.  
  963.  
  964. // //// AutoPagerizeが有効なページで発火するイベント……のはずだが、全てのページで発火する
  965. // //// ここでAutoPagerizeDisableRequestなどを送っても意味がなかった
  966. // document.addEventListener(
  967. // 'GM_AutoPagerizeLoaded', function(e)
  968. // {
  969. // }
  970. // );
  971. /// APメッセージバー(アドオン版)かAPアイコン(スクリプト版)が挿入されると、
  972. /// APが有効なページであるとみなす。
  973. document.addEventListener(
  974. 'DOMNodeInserted', function(e)
  975. {
  976. if( apState != res_apState.inhibit ) return;
  977.  
  978. let $elm = e.target;
  979. if( $elm.id == "autopagerize_message_bar" )
  980. apState = res_apState.valid_addon;
  981. else if( $elm.id == "autopagerize_icon" )
  982. apState = res_apState.valid_script;
  983. if( apState != res_apState.inhibit )
  984. {
  985. // AutoPagerize有効なページでのみ行う処理
  986. $pnl.setAttribute( 'state', 'active');
  987. /// 「有効なページでのみ表示」の場合
  988. if( dspTim == res_dsptim.valid )
  989. $pnl.style.display = 'block';
  990.  
  991. FixParentPanel();
  992.  
  993. $elm.addEventListener(
  994. 'load', function()
  995. {
  996. FireEvent(
  997. apValid == res_apValid.enable?
  998. 'AutoPagerizeEnableRequest':
  999. 'AutoPagerizeDisableRequest'
  1000. );
  1001. }
  1002. );
  1003. }
  1004. }
  1005. );
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011. // ウィンドウのスクロールが発生した時
  1012. window.addEventListener(
  1013. 'scroll', function()
  1014. {
  1015. scTop = document.documentElement.scrollTop;
  1016.  
  1017. // 現在の位置が何ページ目にあるか調査
  1018. for( let i=ap.seam.length-1; i>=0; i-- )
  1019. {
  1020. if( scTop >= ap.seam[i]-1 )
  1021. {
  1022. if( ap.page != i )
  1023. {
  1024. ap.page = i;
  1025. $pt_smyNow.textContent = i+1;
  1026. FixParentPanel();
  1027. }
  1028. break;
  1029. }
  1030. }
  1031. }
  1032. );
  1033.  
  1034. // ページを継ぎ足した時、継ぎ目の位置を記録する
  1035. var AP_SeamLine = function()
  1036. {
  1037. // 表示タイミングがロード後で、最初の継ぎ足しならパネル表示
  1038. if( ap.seam.length == 1 && dspTim == res_dsptim.loaded )
  1039. $pnl.style.display = 'block';
  1040.  
  1041. // 継ぎ目の絶対位置を取得
  1042. let $ap_sep = document.getElementsByClassName("autopagerize_page_separator");
  1043. let len = $ap_sep.length;
  1044. let offsety = 0, $elm = $ap_sep[len-1];
  1045. /// offsetTop が「親要素からの相対位置」なので、親を遡りながら計測する
  1046. while($elm)
  1047. {
  1048. offsety += $elm.offsetTop || 0;
  1049. $elm = $elm.offsetParent;
  1050. }
  1051. ap.seam[len] = offsety;
  1052. $pt_smyMax.textContent = len+1;
  1053.  
  1054. // ページリストアイテムを追加
  1055. var $new_pageitem = $pt_lstItem.cloneNode(true);
  1056. PageItem_AddEvent($new_pageitem, len+1);
  1057. $pt_lst.appendChild($new_pageitem);
  1058.  
  1059. FixParentPanel();
  1060. };
  1061. if( window.AutoPagerize )
  1062. {
  1063. console.log( 'window.AutoPagerize' );
  1064. // 継ぎ足した時
  1065. AutoPagerize.addFilter(AP_SeamLine);
  1066. }else
  1067. {
  1068. document.addEventListener(
  1069. 'GM_AutoPagerizeNextPageLoaded', function()
  1070. {
  1071. AP_SeamLine();
  1072. }
  1073. );
  1074. }
  1075. // document.addEventListener(
  1076. // 'GM_AutoPagerizeLoaded', function(e)
  1077. // {
  1078. // console.log(e);
  1079. // console.log(e.target);
  1080. // }
  1081. // );
  1082. // document.addEventListener(
  1083. // 'load', function(e)
  1084. // {
  1085. // console.log(e);
  1086. // console.log(e.target);
  1087. // }
  1088. // );
  1089. // document.addEventListener(
  1090. // 'DOMContentLoaded', function(e)
  1091. // {
  1092. // console.log(e);
  1093. // console.log(e.target);
  1094. // }
  1095. // );
  1096.  
  1097.  
  1098. var UpdateState = function()
  1099. {
  1100. Update_tgl(apValid);
  1101. FireEvent(
  1102. apValid == res_apValid.enable?
  1103. 'AutoPagerizeEnableRequest':
  1104. 'AutoPagerizeDisableRequest'
  1105. );
  1106. switch(dspTim)
  1107. {
  1108. case res_dsptim.valid:
  1109. $pmd_vld.checked = true;
  1110. break;
  1111. case res_dsptim.loaded:
  1112. $pmd_lod.checked = true;
  1113. break;
  1114. case res_dsptim.always:
  1115. default:
  1116. $pmd_alw.checked = true;
  1117. break;
  1118. }
  1119. Update_dspTim(dspTim);
  1120. $pmp_bas.value = posBasis;
  1121. $pmp_unt.value = unit;
  1122. $pmp_tuh.checked = transUnhover;
  1123. $pmpo_dst.value = posDst.opt;
  1124. $pmps_dst.value = posDst.scr;
  1125. $pmpt_dst.value = posDst.tbl;
  1126. $pmpo_ifm.value = posFrm.iop;
  1127. $pmpo_frm.value = posFrm.opt;
  1128. $pmps_frm.value = posFrm.scr;
  1129. $pmpt_frm.value = posFrm.tbl;
  1130. $pmpo_hid.checked = posHid.opt;
  1131. $pmps_hid.checked = posHid.scr;
  1132. $pmpt_hid.checked = posHid.tbl;
  1133.  
  1134. Update_inhfrm( $p_opt, posFrm.iop);
  1135. Update_frm( $p_opt, posFrm.opt);
  1136. Update_frm( $p_scr, posFrm.scr);
  1137. Update_frm( $p_tbl, posFrm.tbl);
  1138.  
  1139.  
  1140. Update_allDest();
  1141. AutoHide_hiding();
  1142. FixParentPanel();
  1143. };
  1144.  
  1145. var GetState = function()
  1146. {
  1147. apValid = GM_getValue( res_apValid._N, res_apValid.enable);
  1148. dspTim = GM_getValue( res_dsptim._N, res_dsptim.always);
  1149. posBasis = GM_getValue( res_posBasis, 66);
  1150. unit = GM_getValue( res_unit._N, res_unit.pxl);
  1151. transUnhover = GM_getValue( res_transUnhover, false);
  1152. posDst = {
  1153. opt: GM_getValue(res_posDst._OPT, 0),
  1154. scr: GM_getValue(res_posDst._SCR, 28),
  1155. tbl: GM_getValue(res_posDst._TBL, 118)
  1156. };
  1157. posFrm = {
  1158. opt: GM_getValue( res_posFrm._OPT, res_posFrm.up),
  1159. iop: GM_getValue( res_posFrm._IOP, res_posFrm.noset),
  1160. scr: GM_getValue( res_posFrm._SCR, res_posFrm.slim),
  1161. tbl: GM_getValue( res_posFrm._TBL, res_posFrm.pile)
  1162. };
  1163. posHid = {
  1164. opt: GM_getValue( res_posHid._OPT, false),
  1165. scr: GM_getValue( res_posHid._SCR, false),
  1166. tbl: GM_getValue( res_posHid._TBL, false)
  1167. };
  1168. UpdateState();
  1169. };
  1170. GetState();
  1171.  
  1172.  
  1173. // タブを切り替えた時にステータスを最新に同期する
  1174. document.addEventListener(
  1175. 'visibilitychange', function()
  1176. {
  1177. if( document.visibilityState == 'visible' )
  1178. {
  1179. GetState();
  1180. }
  1181. }
  1182. );
  1183.  
  1184.  
  1185.  
  1186. // Open_Config();
  1187.  
  1188.  
  1189.  
  1190. // var $iframe = document.createElement("iframe");
  1191. // $iframe.id = "apc-iframe";
  1192. // $iframe.style.position = 'fixed';
  1193. // $iframe.style.top = 0;
  1194. // $iframe.style.right = 0;
  1195. // $iframe.style.width = '100%';
  1196. // $iframe.style.height = '100%';
  1197. // $iframe.style.border = 'none';
  1198. // $iframe.style.pointerEvents = 'none';
  1199. // document.body.appendChild($iframe);
  1200. //
  1201. // $iframe.addEventListener(
  1202. // 'load', function()
  1203. // {
  1204. // var $idoc = $iframe.contentDocument;
  1205. //// $idoc.open();
  1206. //// $idoc.write("<html><head></head><body></body></html>");
  1207. //// $idoc.close();
  1208. //// $idoc.writeln("<body></body>");
  1209. // $idoc.body.style.margin = 0;
  1210. // $idoc.body.style.cursor = 'pointer';
  1211. //
  1212. // var $ielm = $idoc.createElement("div");
  1213. // $ielm.style.position = 'fixed';
  1214. // $ielm.style.top = '300px';
  1215. // $ielm.style.width = '40px';
  1216. // $ielm.style.height = '40px';
  1217. // $ielm.style.background = '#cfc';
  1218. // $ielm.style.right = 0;
  1219. // $idoc.body.appendChild($ielm);
  1220. // $ielm.appendChild($idoc.createTextNode("test"));
  1221. //
  1222. // var $ielm2 = $idoc.createElement("select");
  1223. // $ielm2.style.position = 'fixed';
  1224. // $ielm2.style.top = '400px';
  1225. // $ielm2.style.width = '40px';
  1226. // $ielm2.style.height = '40px';
  1227. // $ielm2.style.background = '#cfc';
  1228. // $ielm2.style.right = 0;
  1229. // $ielm2.style.pointerEvents = 'auto';
  1230. // $idoc.body.appendChild($ielm2);
  1231. // console.log($idoc);
  1232. // },false
  1233. // );
  1234. })();