元スレ+ JavaScript の質問用スレッド vol.74 +
JavaScript覧 / PC版 /みんなの評価 : ○
655 = :
>>645
読み込んだだけでdocument.writeするjsをクリックイベントで読み込ませるのはどうかと思うけど、
document.writeを上書けば何とかなるんじゃ
656 = :
>>654
繰り返しになるけど、NSResolverがどう動こうと、XPath式の中のプレ
フィックスなしタグ名は「名前空間なし」と決まっているの。
だから、この場合はXPath式の中でプレフィックスを付けて自分で
NSResolverを提供するか、//*[local-name()="body" and namespace-url()="..."]
と書く必要がある。
657 = :
>>656
理解できました。ありがとうございます。
660 = :
q/文字列/みたいな記法はないが似たような事は可能
function q(s) {
s += "";
return s.replace(/\//g, "");
}
var a = q(/"""'''/);
alert(a);
661 = :
>>660
なるほど、関数を作れば似たようなことができるんすね。
㌧
663 = :
教授はあげません
664 = :
ご教示だな。
666 = 665 :
サーバ負荷が高まった時に、レスポンスが遅くてイラついた
ユーザがリロードするのを抑制したくて、とりあえず
サーバ側で高負荷時にフラグを立てて
JS側で、フラグONなときにショートカットとF5を
抑制することにしたんですが、
リロードそのものをどうこうすることって、できるんかね?
667 = :
うざす
668 = :
>>660
斬新な発想だなw
s += "";は文字列変換したいんだよな? String()でキャストしたほうが見た目もパフォーマンスもいい
あと replace(/\//g, "")だと/が全部消える。replace(/^\/(.*)\/$/g, "$1") とか。
で、こんな感じ。
function q(s) {
return String(s).replace(/^\/(.*)\/$/g, "$1");
}
たださ、これ、q(/[/) とかがシンタックスエラーになるのよ。
残念だけど、実用的ではないな。
669 = :
JavaScriptで<html></html>内に記述した日時を取得してくるって可能ですか?´`
670 = :
>>668
パフォーマンスの話をするなら結果的に呼ばれるtoString()を直に呼ぶ方がいいはず
>>669
DOM操作の基本レベル
671 = :
>>669
可能です。
672 = :
>>668
/にしても[にしても(にしても、あんたのように何が書けて何が書けないかが
分かるヤツならどうとでもなるでしょ。
実用的って…んなもの考えて書いちゃいないって。勘弁してよw
使いたいヤツが使えるようにすりゃいいのよ。
673 = 665 :
>>667
やっぱ無理かー。
いろいろ調べたんだけど、リロード自体とちゃんと向き合って
どうこうしたのは見つからんし。
674 = :
>>670
>>671
var obj = document.getElementsByTagName("html").innerText;
alert(obj);
こんな感じでつか?
あんでぃふぁいんど としかでねー<(゚Д゚;)>ぬおーー
675 = :
>>672
アイデアは素直に面白いなーと思ったけど、
実用的じゃないと鵜呑みにしちゃってる感じの>>661 は困るんじゃないかなと思ってさ。
って、それなら安価を661にするべきだったな。すまそ
677 = :
カスとか言いながらググッてくれた貴様の優しさに東京市民が泣いた
679 = :
>>676
safe サーチを off にして何を検索してるんですか//
680 = :
何ってナニでしょ
681 = :
んま~お下品ですこと
682 = :
>>661
実用に耐えられるものを書いた(つもり)
/*******************************************
引数:正規表現リテラル(/ [ ] ( ) これらはエスケープ)
*******************************************/
function q(s) {
function f(s1, s2, s3) {
if (s3.charAt(s2 + 1) != '\\') return '';
return s1;
}
return s.source.replace(/\\/g, f);
}
var a = q(/\\ \/ \[ \( " '/);
alert(a);
穴があったらフォローしてちょ
683 = :
穴があったら俺は入れる。
684 = :
おめーら下品すぎんだよ
おれのチンポでもしゃぶってろこのチンカスマンゲ
685 = :
>>682
関数にしてまで利用する処理なのか?それ
686 = :
>>685
知らん。
クォーテーションをエスケープすんのが面倒なんじゃないの。
687 = :
>>682
function q(s) {
function f(s1) {
return s1.substring(0, s1.length / 2);
}
return s.source.replace(/\\+/g, f);
}
688 = :
ぶっちゃけると、エスケープの手間を省こうとして
エスケープしないといけない文字の種類を増やしてるのは本末転倒だよね
689 = :
以下サイトにクロージャーの説明がありますが、
第3回 変数の宣言とスコープ - @IT
http://www.atmarkit.co.jp/fdotnet/ajaxjs/ajaxjs03/ajaxjs03_04.html
function myClosure(init) {
var cnt = init;
return function() {
return ++cnt;
}
}
var result = myClosure(10);
window.alert(result()); // 11
window.alert(result()); // 12
window.alert(result()); // 13
以下のように引数をそのままクロージャーに入れるのとは何か違いはありますでしょうか?
function myClosure(init) {
return function() {
return ++init;
}
}
690 = :
>>689
その例だと見てるスコープが同じだから違いがないなぁ
上の例は、
var cnt = init;
で初期化を考えてるんだろうから
var cnt = init || 0;
の方が良い気がする。引数なければ1からカウントってことで。
691 = :
>>690
なるほど。
レス、㌧
692 = :
Number の初期化に論理和演算子使う奴とかまだいたのかよ
arguments.length まで頭回らなくてもせめて Number() してくれ
alert(let (x = 'num') x++);
693 = :
or使うと不幸になるパターンあるのはわかるがそのコードでなにが言いたいのかわからねー
NaNはNaNだろ、つーかサンプルコードで当然のようにlet使うなよ
694 = :
>>692
ごめん、Numberの初期化で論理和演算子ってダメなの?今まで気にしてなかった
arguments.lengthの話ってことは0だとfalseになるからってこと?
それと、alertのコードの意味がよくわからないのでそれも教えて
695 = :
onclickでブログパーツを表示させたいと相談した>>636です。
あれからいろいろやってみて、↓でかなりいい線まで来ました。
<script type="text/javascript">
function Disp(js, x, y) {
document.getElementById('box').innerHTML = '<iframe id="blogparts" name="blogparts" width="' + x + ' height="' + y + '" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"><\/iframe>';
var iframeDocument = document.getElementById('blogparts').contentWindow.document;
iframeDocument.open();
iframeDocument.writeln('<html><head><title><\/title><\/head><body style="margin: 0px; padding: 0px;">' + js + '<\/body><\/html>');
if (!document.all) iframeDocument.close(); //IE除外※
return;
}
</script>
<div id="box"></div>
<a href="javascript:void(0);" onclick="Disp('<script type="text/javascript\" src="ほにゃらら.js"></script>', 160, 400); return false;">表示</a>
innerHTMLで書き出すのでは「ほにゃらら.js」を実行できないので、iframeを書き出して、その中にdocument.writeしてしまおうという発想です。
つづく
696 = :
つづき
この方法で、動作確認しているFirefox 3.5.5、Google Chrome 3.0、Safari 4.0.4では完璧に表示できました。
しかし、IE 8.0ではcontentWindow.documentをclose()すると、ほとんどの場合、エラーも出ないままにIEが固まってしまいました。
※その回避のための「if (!document.all) iframeDocument.close();」
そこでまた相談なのですが、
1)IEがエラーで停止じゃなくてブラウザごとフリーズしてしまうというのは、この方法は他のブラウザでたまたま表示できているだけで、JavaScript的になにか根本的にまずいことをしてしまっているのか?
2)手法として問題ないのであれば、今のスクリプトだと、当然IEではcloseしていないので「ほにゃらら.jsをダウンロードしています」とステータスバーに表示されたままになってしまう。
closeしても絶対フリーズするわけではなく、タイミングによっては表示ができるので、おそらくcloseのタイミングが早すぎるのだと思われる。
ほにゃらら.js読み込み完了を判別してcloseする方法はないか?
やってみたこととして、
「<iframe ~ onload="self.contentWindow.document.close();">」
↑iframeにonloadを仕込む。
「iframeDocument.writeln('<html> ~ <\/html><script type="text/javascript">self.document.close();<\/html>');」
↑contentWindow.documentに書き出す内容の最後に自身をcloseするスクリプトを追記する。
「iframeDocument.writeln('<html> ~ <body ~ onload="self.document.close();">');」
↑contentWindow.documentに書き出したbodyにonloadを仕込む。
は、いずれもダメでした。
いかがでしょうか?どうかいいアイデアをご教示願います。
698 :
javascriptを覚えることとjqueryやprototypeを覚えるのは
どちらがweb制作現場で使える技術になりますか?
699 = :
最低限、HTML(HTML4.01/5.0/XML/XHTML1.0|1.1),CSS(CSS2.1/3),JavaScript,PHP,WAI(アクセシビリティ)は使えるようになった方が良い
700 = :
>>695
どこで利用したいのかわからないけど、思いついたこといくつか。
1、ほにゃらら.jsを書き換えられるなら関数で包んで、onclick=その関数
2、自分のウェブページとかでページをうpできるなら、ほにゃららJSを埋め込んであるページを作る。iframeのsrc="~”の~部分にそのページを入れる。
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.94 + (1001) - [97%] - 2012/1/8 15:46
- + JavaScript の質問用スレッド vol.79 + (1001) - [97%] - 2010/9/11 6:50
- + JavaScript の質問用スレッド vol.84 + (1001) - [97%] - 2011/3/30 7:32
- + JavaScript の質問用スレッド vol.75 + (1001) - [97%] - 2010/1/23 1:07 ○
- + JavaScript の質問用スレッド vol.76 + (1001) - [97%] - 2010/3/10 4:02
- + JavaScript の質問用スレッド vol.77 + (1001) - [97%] - 2010/5/8 19:06
- + JavaScript の質問用スレッド vol.78 + (1001) - [97%] - 2010/6/25 3:53
- + JavaScript の質問用スレッド vol.104 + (1001) - [95%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.124 + (1001) - [95%] - 2015/7/16 1:30
- + JavaScript の質問用スレッド vol.142 + (984) - [95%] - 2020/8/27 19:15
- + JavaScript の質問用スレッド vol.134 + (1001) - [95%] - 2018/8/3 23:15
- + JavaScript の質問用スレッド vol.141 + (881) - [95%] - 2021/4/19 9:00
- + JavaScript の質問用スレッド vol.140 + (1001) - [95%] - 2019/9/19 10:45
- + JavaScript の質問用スレッド vol.141 + (1001) - [95%] - 2019/9/22 23:15
- + JavaScript の質問用スレッド vol.142 + (926) - [95%] - 2019/12/23 13:15
- + JavaScript の質問用スレッド vol.143 + (753) - [95%] - 2020/4/19 5:00
- + JavaScript の質問用スレッド vol.144 + (288) - [95%] - 2020/5/17 20:00
トップメニューへ / →のくす牧場書庫について