テキストがだんだん書かれてゆくBookmarklet
by
esperia
2011-04-02 [2011/04/02 07:09:43]
一旦消えたテキストがだんだん元に戻って行く様子を見つめるだけの暇つぶしにどうぞ。
@@ -13,22 +13,23 @@
var getAllTextData = function (textData) {
var textData = [];
for (var i = 0; i < allTextEl.snapshotLength; i++) {
- if (allTextEl.snapshotItem(i).nodeValue.match(/[^\n\t\r ]+/g)) {
+ //if (allTextEl.snapshotItem(i).nodeValue.match(/^[^\n\r\t ]+$/g)) {
var obj = {};
- obj.parent = allTextEl.snapshotItem(i).parentNode;
+ obj.parent = allTextEl.snapshotItem(i);
obj.text = allTextEl.snapshotItem(i).nodeValue;
+console.log(obj.parent);
allTextEl.snapshotItem(i).nodeValue = '';
textData.push(obj);
- }
+ //}
}
- return textData
+ return textData;
}
textData = getAllTextData(textData);
var nodep = 0,
textp = 0,
insertTextTimer;
var insertText = function () {
- textData[nodep].parent.childNodes[0].nodeValue += textData[nodep].text.charAt(textp);
+ textData[nodep].parent.nodeValue += textData[nodep].text.charAt(textp);
textp++;
if (textData[nodep].text.length - 1 < textp) {
textp = 0;
@@ -38,5 +39,5 @@
}
}
}
- insertTextTimer = setInterval(insertText, 20)
+ insertTextTimer = setInterval(insertText, 15)
})(document);
/*
* @title テキストがだんだん書かれてゆくBookmarklet
* @description 一旦消えたテキストがだんだん元に戻って行く様子を見つめるだけの暇つぶしにどうぞ。
* @include http://d.hatena.ne.jp/esperia/
* @license MIT License
* @require
*/
(function (doc) {
var allTextEl = doc.evaluate("/*/body//*[not(self::script) and not(self::noscript)]/text()", doc, null, 7, null);
var textData;
var getAllTextData = function (textData) {
var textData = [];
for (var i = 0; i < allTextEl.snapshotLength; i++) {
//if (allTextEl.snapshotItem(i).nodeValue.match(/^[^\n\r\t ]+$/g)) {
var obj = {};
obj.parent = allTextEl.snapshotItem(i);
obj.text = allTextEl.snapshotItem(i).nodeValue;
console.log(obj.parent);
allTextEl.snapshotItem(i).nodeValue = '';
textData.push(obj);
//}
}
return textData;
}
textData = getAllTextData(textData);
var nodep = 0,
textp = 0,
insertTextTimer;
var insertText = function () {
textData[nodep].parent.nodeValue += textData[nodep].text.charAt(textp);
textp++;
if (textData[nodep].text.length - 1 < textp) {
textp = 0;
nodep++;
if (textData.length - 1 < nodep) {
clearInterval(insertTextTimer)
}
}
}
insertTextTimer = setInterval(insertText, 15)
})(document);
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。