javascript:document.write('<form name="f" action="https://kabutan.jp/search/" method="POST"><input type="hidden" name="input_string" value="%s"></form><script>f.submit();</script>');
↑は株探の場合
ちょっと調べたこととかメモ代わりに書いていきます。 プログラミングは適当に覚えたので間違ってる可能性大です。
javascript:document.write('<form name="f" action="https://kabutan.jp/search/" method="POST"><input type="hidden" name="input_string" value="%s"></form><script>f.submit();</script>');
function setWordHighlight (word) {
var doc = document,
df = doc.createDocumentFragment(),
span = doc.createElement('span'),
texts = doc.evaluate('descendant::text()[normalize-space(.)]', doc.body, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
span.className = 'high-light';
span.appendChild(doc.createTextNode(word));
for (var i = 0, l = texts.snapshotLength, stringsLength, textNode; i < l; ++i) {
textNode = texts.snapshotItem(i);
strings = textNode.data.split(word);
stringsLength = strings.length;
if (stringsLength > 1) {
df.appendChild(doc.createTextNode(strings[0]));
for (var j = 1; j < stringsLength; ++j) {
df.appendChild(span.cloneNode(true));
df.appendChild(doc.createTextNode(strings[j]));
}
textNode.parentNode.replaceChild(df, textNode);
}
}
}
setWordHighlight('test');
.high-light { color: black; background-color: yellow; font-weight: bold; }
全要素を走査し順番に意味が無い場合、若干ですが高速化できます。
for (var i = 0; i < list.length; i++) {console.log(list[i]);}
毎回、.lengthを参照するのは無駄ですので予め変数に入れておきます。
for (var i = 0, len = list.length; i < len; i++) {console.log(list[i]); }
順番に意味がないのなら、最後から走査することでさらに簡略化できます。
var i = list.length - 1;for (; i >= 0; i--) {console.log(list[i]);}
array instanceof Array
では不十分なので
Array.isArray(obj)
を使用する
古いブラウザでは↓を追加しとく
if (!Array.isArray) {
Array.isArray = function (vArg) {
return Object.prototype.toString.call(vArg) === "[object Array]";
};
}