戦国IXA(イクサ) 全鯖 総合 ID:sBPtYCvb

86軟弱なひと:2013/06/29(土) 10:53:06.13 ID:sBPtYCvb

方針変更してみます。
user.jsをあまりいじらずにContentScriptとして実行させることに成功したのでw

手法について、わかる人だけわかればよい!的記法で説明します。

[1]mokoをExtension化する一番簡単な方法は以下の項をmanifest.jsonに記入すること。
"content_scripts":[
{
"matches":["http://*.sengokuixa.jp/*"]
,"exclude_matches":["http://sengokuixa.jp/*"]
,"js":["/js/sengokuixa-moko-2064.user.js"]
,"all_frames":true
,"run_at":"document_start"
}]
これはアイコン付ける事ができるだけであまりメリットはないw

[2]user.jsの中のmoko_main導入部分
function moko_main(){
<<moko_mainの定義>>
}
window.addEventListener("DOMContentLoaded", function() {
 var scriptMoko = document.createElement("script");
  scriptMoko.textContent = "(" + Moko_main.toString() + ")(j$);";
  document.head.appendChild(scriptMoko);
  document.head.appendChild(style);
});
これを書き換え、Moko_mainやCSS等をheadに取り込む部分を書き直して
取り込む中身と取り込み処理を別にしたのがcrxSpikeですね。

[3]headに取り込むのをやめて、Content ScriptでMoko_mainを実行させようというのが
私の方針です。
手作業でやりかけてましたがw、

IXA環境そのものを完こぴしてしまえば、Moko_mainをそのまま実行できるだろ・・・ということで
content_scripts":[{
(matches exclude_matchesの項は省略)
,"js":[
 "Js/ORIG/prototype.js",
 "Js/ORIG/jquery-1.3.2.js",
 "/Js/jqueryConflict.js",
 "Js/ORIG/common.js",
(中略)
 "Js/ORIG/gronavi.js",
 "/Js/Moko_main.js"
]
,"css":[
"/Css/ORIG/ui.tabs.css",
(中略)
"/Css/mokoMain.css"
]
,"all_frames":true
,"run_at":"document_idle"
}]
として、なんとか実行 に成功しました。

75のixa公式の関数の書き換えについては該当箇所をみつけてないので
対処してませんが・・・・オリジナルの*.jsや*.phpを切り取って対処すれば良いと踏んでます。

オリジナル部分対応は後回しとしし、ここまでやったものを数日内に公開します。

87名無しさん@Next2ch:2013/06/29(土) 11:03:30.54 ID:sBPtYCvb

その上で・・・
[4]Moko_mainをソース分割します。
 [2]の時点でそれはできたと思いますが・・・・・

//全画面共通
{
  "matches":["http://*.sengokuixa.jp/*"] 
  ,"exclude_globs":["http://sengokuixa.jp/*","http://*.sengokuixa.jp/false/login_sessionout.php"]
  ,"css":[(IXAオリジナルのCSS),(汎用処理のjs),(全画面共通処理のjs)]
  ,"js":[(IXAオリジナルのjs),(全画面で使用するcss)]
  ,"all_frames":true
  ,"run_at":"document_start"
}
//内政拠点
,{
  "matches":["http://*.sengokuixa.jp/village.php*"]
  ,"js":["village.js"]
  ,"css":["village.css"]
  ,"all_frames":true
}
//以下URL単位で追加

88名無しさん@Next2ch:2013/06/29(土) 11:08:31.03 ID:sBPtYCvb

その上で
[5]、
moko_toolをpage actionに
moko設定をoptions pageに移し、

さらにpage actionやcontent scriptからの通信で85の処理を追加。

並行し、
IXAオリジナル環境コピー部分の修正とそれにともなうソースの修正を進めていこうと思ってます。

89名無しさん@Next2ch:2013/06/29(土) 11:17:58.19 ID:sBPtYCvb

オリジナル環境の部分をほぼ削除しきったら、
ツールスレに持って行こうかと。

91名無しさん@Next2ch:2013/06/29(土) 19:50:12.67 ID:sBPtYCvb

んがー。jsはほぼ再現してるが、見た目(CSS絡み)が問題あるなー。
Content ScriptのCSS挿入機能、ちょっとおかしいのかな・・・・

例えば、秘境探索、待機の部台数表示、
CSSのセレクタ設定が
a.dungeonやa.taikiだと色が変わらないのに、
#troops_disp a.dungeon #troops_disp a.taikiだと有効。

セレクタの条件を厳しなくても唯一なんだが、セレクタを厳しないと有効にならないケースが
いっぱいある。挿入条件run_atの絡みかな。。。。。

わかる人は、これはcssだなーとわかるが、素人だと、動作がだめだーと思うから、
評価悪いだろうな・・・・

CSSいじる前といじりかけた奴、gitに明日中にだします。

92名無しさん@Next2ch:2013/06/29(土) 19:55:37.30 ID:sBPtYCvb

>>90
たしかにカオスだ・・・・

93名無しさん@Next2ch:2013/06/29(土) 20:25:09.16 ID:sBPtYCvb

manifest.jsonのcontent scriptsの記述によるcssの挿入ではなく、
jsでの挿入で行けた。
$(head).append($('<link rel="stylesheet" href="'+chrome.extension.getURL("/Css/mokoMain.css")+'" type="text/css">');

まだ、動作不安定なのかな・・・それともrun_atの設定でクリアできるのかな。

最新のmokoで置き換えしようと思ったが、90の状況だから、それは危険だなー


このIDをNGリストに追加する

今後このIDの書き込みやスレッドを表示したくない場合、以下のボタンをクリックしてください。
NGリストに追加

レスを書き込む