たてがき!進化版
by
Amasak
2017-08-05 [2017/08/05 12:34:59]
「小説家になろう」をiPhoneで縦書きにして読む。GoogleCode閉鎖したので別の場所から。
@@ -18,7 +18,7 @@
paged_element.setStyle("body", {
"flow":"tb-rl", // 縦書きモード。横書きなら"lr-tb"にする。
"width":320,
- "height":420,
+ "height":430,
"font-size":16 // fontSize(camel case)とは書けない。
});
/*
* @title たてがき!
* @description 「小説家になろう」をiPhoneで縦書きにして読む
* @include http://*
* @license MIT License
* @require http://nehan.googlecode.com/hg/nehan5.min.js
* @require http://nehan.googlecode.com/hg/nehan5.css
*/
//本文(divタグ)を取得
var targetNode=document.getElementById("novel_honbun");
//PagedElementの作成
var paged_element = Nehan.createPagedElement();
//スタイルの設定
paged_element.setStyle("body", {
"flow":"tb-rl", // 縦書きモード。横書きなら"lr-tb"にする。
"width":320,
"height":430,
"font-size":16 // fontSize(camel case)とは書けない。
});
//ページ内容をセット
//paged_element.setContent(targetNode.innerHTML);
/*
paged_element.setContent(targetNode.innerHTML, {
onComplete : function(time){
console.log("page_count = %d", paged_element.getPageCount());
console.log("outline element = %o", paged_element.engine.createOutlineElement());
}
});
*/
paged_element.setContent(targetNode.innerHTML, {
onProgress : function(tree){
console.log("%d page(%d percent) is done", tree.pageNo, tree.percent);
},
onComplete : function(time){
console.log("finish! %f time", time);
}
});
//組版結果のDOMを取得
var element = paged_element.getElement();
//本文を組版結果に置換
targetNode.parentNode.replaceChild(element,targetNode);
// 進むボタン
var NextButton = document.createElement('input');
NextButton.type = "button";
NextButton.value = "<進む";
NextButton.id = "next-button";
// 戻るボタン
var PrevButton = document.createElement('input');
PrevButton.type = "button";
PrevButton.value = "戻る>";
PrevButton.id = "prev-button";
var ButtonArea = document.createElement('div');
ButtonArea.style.textAlign = "center";
ButtonArea.innerHTML = "<br>";
ButtonArea.appendChild(NextButton);
ButtonArea.innerHTML = ButtonArea.innerHTML + " ";
ButtonArea.appendChild(PrevButton);
ButtonArea.innerHTML = ButtonArea.innerHTML + "<br><br>";
element.appendChild(ButtonArea);
// ボタンを配置
//element.appendChild(NextButton);
//element.appendChild(PrevButton);
// 次ページボタンをクリック
document.getElementById("next-button").onclick = function(){
paged_element.setNextPage();
//element.appendChild(NextButton);
//element.appendChild(PrevButton);
element.appendChild(ButtonArea);
};
// 次ページボタンをクリック
document.getElementById("prev-button").onclick = function(){
paged_element.setPrevPage();
//element.appendChild(NextButton);
//element.appendChild(PrevButton);
element.appendChild(ButtonArea);
};
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。