私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.76 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
>>650
まず、document.write()し終わった後の想定されるHTMLを
書いてみる。それが正しいHTMLになってなければそもそも
うまく動くわけがないでしょ。HTMLのバージョンはどれを想定?
まず、document.write()し終わった後の想定されるHTMLを
書いてみる。それが正しいHTMLになってなければそもそも
うまく動くわけがないでしょ。HTMLのバージョンはどれを想定?
> なにが間違っているのでしょうか?
"Oh, year!" ではなくて "Oh, yeah!" ではなかろうか。
という冗談はさておき、
<html>
<head>
<title>window or document</title>
<script type="text/javascript">
window.str = "window";
document.str = "document";
</script>
</head>
<body>
<form>
<input type="button" value="押してみて" onclick="alert(str)">
</form>
<script type="text/javascript">
alert(str);
</script>
</body>
</html>
onclick で呼び出されている write() って実は document.write() の方でしょ。
独自定義の方を _write() とかにしたら意図通りに動くと思うよ。
"Oh, year!" ではなくて "Oh, yeah!" ではなかろうか。
という冗談はさておき、
<html>
<head>
<title>window or document</title>
<script type="text/javascript">
window.str = "window";
document.str = "document";
</script>
</head>
<body>
<form>
<input type="button" value="押してみて" onclick="alert(str)">
</form>
<script type="text/javascript">
alert(str);
</script>
</body>
</html>
onclick で呼び出されている write() って実は document.write() の方でしょ。
独自定義の方を _write() とかにしたら意図通りに動くと思うよ。
document.write でページ内容が既に書き換わっちゃっていて、
そのページに更新かけてるから。
location.href とかで google のトップページに飛ばした後で
いくらリロードしても google のトップページがリロードされるだけ。
みたいな。
そのページに更新かけてるから。
location.href とかで google のトップページに飛ばした後で
いくらリロードしても google のトップページがリロードされるだけ。
みたいな。
"Sun Nov 29 01:20:14 +0000 2009"
のような形式の日付文字列を、Dateオブジェクトに変換したいのですが、
どうすればできますか?
よろしくお願いします。
のような形式の日付文字列を、Dateオブジェクトに変換したいのですが、
どうすればできますか?
よろしくお願いします。
>>658
その方法だと、Firefoxは大丈夫なんですが、IEがエラーになります。。。
その方法だと、Firefoxは大丈夫なんですが、IEがエラーになります。。。
[環境]
IE 8
FF 3.6
document.body.innerHTML = document.body.innerHTML
.replace(/aaaa/gi,'bbbb')
.replace(/cccc/gi,'dddd')
.replace(/eeee/gi,'ffff')
…(省略) …
.replace(/hoge/gi,'geho');
上記のようにreplaceをどんどん繋げていってreplaceを約1300個繋げたいです。
IEでは問題なかったのですが、
Firefoxでは1000個目前後で、
「too much recursion」というエラーが出て置換できませんでした。
このFirefoxでのエラーを回避できる方法はありますでしょうか?
ただし、以下のように
document.body.innerHTML = document.body.innerHTML.replace(/aaaa/gi,'bbbb') … ({replaceを500個くらいで分ける}) … replace(/hoge/gi,'geho');
document.body.innerHTML = document.body.innerHTML.replace(/aaaa/gi,'bbbb') … ({replaceを500個くらいで分ける}) … replace(/hoge/gi,'geho');
2回に分ける方法でいけるといえばいけたのですが、パフォーマンスが落ちるのであまりやりたくないのです。
よろしくお願いします。
IE 8
FF 3.6
document.body.innerHTML = document.body.innerHTML
.replace(/aaaa/gi,'bbbb')
.replace(/cccc/gi,'dddd')
.replace(/eeee/gi,'ffff')
…(省略) …
.replace(/hoge/gi,'geho');
上記のようにreplaceをどんどん繋げていってreplaceを約1300個繋げたいです。
IEでは問題なかったのですが、
Firefoxでは1000個目前後で、
「too much recursion」というエラーが出て置換できませんでした。
このFirefoxでのエラーを回避できる方法はありますでしょうか?
ただし、以下のように
document.body.innerHTML = document.body.innerHTML.replace(/aaaa/gi,'bbbb') … ({replaceを500個くらいで分ける}) … replace(/hoge/gi,'geho');
document.body.innerHTML = document.body.innerHTML.replace(/aaaa/gi,'bbbb') … ({replaceを500個くらいで分ける}) … replace(/hoge/gi,'geho');
2回に分ける方法でいけるといえばいけたのですが、パフォーマンスが落ちるのであまりやりたくないのです。
よろしくお願いします。
>.659
ECMA標準はDate.parse(str)だった
それでもダメならパーザ書くしか
ECMA標準はDate.parse(str)だった
それでもダメならパーザ書くしか
>>662
var a = [[/aaaa/gi, 'bbbb'], [/cccc/gi, 'dddd'], ...];
var s = document.body.innerHTML;
for(var p in a) s = s.replace(p[0], p[1]);
document.body.innterHTML = s;
var a = [[/aaaa/gi, 'bbbb'], [/cccc/gi, 'dddd'], ...];
var s = document.body.innerHTML;
for(var p in a) s = s.replace(p[0], p[1]);
document.body.innterHTML = s;
>>661
ありがとうございます。
ありがとうございます。
>>662
innerHTML弄るときにDOM構造を崩さないように気をつけろよ
innerHTML弄るときにDOM構造を崩さないように気をつけろよ
>>659
日付書式変えてみるといけると思うよ。↓をいじっていろいろ試してみて。
<html>
<head><title>string to date</title></head>
<body>
<table><tbody id="result"><tr><th>str</th><th>new Date(str).toString()</th></tr></tbody></table>
<script>
var dateStr = [
"Sun Nov 29 2009 01:20:14 GMT+0000",
"Nov 29 2009 01:20:14 +0000", // 曜日とかGMTとかはいらない
"2009 01:20:14 29 +0000 Nov", // 区別がつけば順番ばらばらでも意外といける
"2009/11/29 01:20:14 +00:00", // IE8はタイムゾーンに : が入るとだめ
"2009-11-29 01:20:14 +0000",
"09/11/29 01:20:14 +0000", // IE8不可 他では1929年9月11日に
"2009/11/29", // IE8不可
"01:20:14" // Opera可
], resultSRC = "", resultTable = document.getElementById("result");
function newTR(str){
var tr = document.createElement("tr"); resultTable.appendChild(tr);
var td = document.createElement("td"); tr.appendChild(td); td.innerHTML = str;
td = document.createElement("td"); tr.appendChild(td); td.innerHTML = new Date(str).toString();
}
for (var i = 0; i < dateStr.length; i++) newTR(dateStr[i]);
</script>
</body>
</html>
日付書式変えてみるといけると思うよ。↓をいじっていろいろ試してみて。
<html>
<head><title>string to date</title></head>
<body>
<table><tbody id="result"><tr><th>str</th><th>new Date(str).toString()</th></tr></tbody></table>
<script>
var dateStr = [
"Sun Nov 29 2009 01:20:14 GMT+0000",
"Nov 29 2009 01:20:14 +0000", // 曜日とかGMTとかはいらない
"2009 01:20:14 29 +0000 Nov", // 区別がつけば順番ばらばらでも意外といける
"2009/11/29 01:20:14 +00:00", // IE8はタイムゾーンに : が入るとだめ
"2009-11-29 01:20:14 +0000",
"09/11/29 01:20:14 +0000", // IE8不可 他では1929年9月11日に
"2009/11/29", // IE8不可
"01:20:14" // Opera可
], resultSRC = "", resultTable = document.getElementById("result");
function newTR(str){
var tr = document.createElement("tr"); resultTable.appendChild(tr);
var td = document.createElement("td"); tr.appendChild(td); td.innerHTML = str;
td = document.createElement("td"); tr.appendChild(td); td.innerHTML = new Date(str).toString();
}
for (var i = 0; i < dateStr.length; i++) newTR(dateStr[i]);
</script>
</body>
</html>
訂正。"09/11/29 01:20:14 +0000"(1929年になるやつ)はIE8でもいけた。
"+00:00"で試したときのメモが残ってたごめん。
"+00:00"で試したときのメモが残ってたごめん。
replace() メソッドの第二引数の function 指定、
皆、利用してないんだな。
皆、利用してないんだな。
こんなの合ったのか。>第二引数がfunction
関数使わないとできないってのにお目にかかったことが無いから使ったことなかったな。
関数使わないとできないってのにお目にかかったことが無いから使ったことなかったな。
jQueryのイベントハンドラ登録で、
bind()使って登録するのと、click()とかmousemove()で直接結びつけるのってどう違うの?
bind()使って登録するのと、click()とかmousemove()で直接結びつけるのってどう違うの?
iPhoneのときはjavascriptでcssを切り替えるようにしようと思ったのですが、表示が変わりません。
FirefoxのDOM Inspectorで見るとrelの値は変わっているのですが、この変更では切り替えられないのでしょうか?
<head>
<link href="/src/common.css" rel="stylesheet" title="common" />
<link href="/src/iPhone.css" rel="alternate stylesheet" title="iPhone" />
<script type="text/javascript">
var link = document.getElementsByTagName('link');
for(var i=0;link[i];i++)
{
if(link[i].getAttribute('title'))
{
switch(link[i].getAttribute('rel'))
{
case ('stylesheet'):
link[i].setAttribute('rel','alternate stylesheet');
break;
case ('alternate stylesheet'):
link[i].setAttribute('rel','stylesheet');
break;
}
}
}
</script>
</head>
FirefoxのDOM Inspectorで見るとrelの値は変わっているのですが、この変更では切り替えられないのでしょうか?
<head>
<link href="/src/common.css" rel="stylesheet" title="common" />
<link href="/src/iPhone.css" rel="alternate stylesheet" title="iPhone" />
<script type="text/javascript">
var link = document.getElementsByTagName('link');
for(var i=0;link[i];i++)
{
if(link[i].getAttribute('title'))
{
switch(link[i].getAttribute('rel'))
{
case ('stylesheet'):
link[i].setAttribute('rel','alternate stylesheet');
break;
case ('alternate stylesheet'):
link[i].setAttribute('rel','stylesheet');
break;
}
}
}
</script>
</head>
PC用のをメインにしてappendChildでiPhone用のCSSで上書きするようにしたら?
>>679
x = document.createElement("link");
x.href = "data:text/css;utf-8,body{background-color:#000;}";
x.rel ="stylesheet";
document.getElementsByTagName("head")[0].appendChild(x);
やってみな
x = document.createElement("link");
x.href = "data:text/css;utf-8,body{background-color:#000;}";
x.rel ="stylesheet";
document.getElementsByTagName("head")[0].appendChild(x);
やってみな
諦めてhref属性変えることにします
ありがとう
ありがとう
と思ったら場合によっては何も表示されなくなってしまう…
やっぱり諦めて@mediaで上書きすることにします
やっぱり諦めて@mediaで上書きすることにします
bookmarkletを作ろうと思い調べたところJavaScriptを使っている事がわかったのですがURLにあらかじめ
決まった単語を追加するにはどうすればいいですか?
lang_ja ←をURLの最後に追加するbookmarkletが作りたいんです。
決まった単語を追加するにはどうすればいいですか?
lang_ja ←をURLの最後に追加するbookmarkletが作りたいんです。
ページをロードせずにアドレスバーの値を書き換えることは無理。
「lang_ja」を URL の最後に追加した文字列が欲しいだけなら prompt で出せば?
IE の場合は、大抵、設定によって prompt はブロックされるけど。
「lang_ja」を URL の最後に追加した文字列が欲しいだけなら prompt で出せば?
IE の場合は、大抵、設定によって prompt はブロックされるけど。
これはリンク要素に付けたいんじゃないかな・・?どちらにしろ意味がよく分からないが
>>685
レスありがとう。
文字列が欲しいだけじゃなくて今表示しているページのURLにlang_jaを追加した後自動でリロードしてくれるものが作りたいです。
MacのSafariを使ってます。
JavaScriptに関してまったく知識が無いので1,2行で済むなら書いていただけると嬉しいのですが。
javascript:location.href=○○○lr=lang_ja; って感じで手探りで作ってみたんですけど無理っす。
レスありがとう。
文字列が欲しいだけじゃなくて今表示しているページのURLにlang_jaを追加した後自動でリロードしてくれるものが作りたいです。
MacのSafariを使ってます。
JavaScriptに関してまったく知識が無いので1,2行で済むなら書いていただけると嬉しいのですが。
javascript:location.href=○○○lr=lang_ja; って感じで手探りで作ってみたんですけど無理っす。
javascript:location.href=(location.href+'lang_ja');
javascriptの知識無いとブックマークレットは作るの大変だよ。
win IEでは動いた。
document.とかってどこまで省略していのかわからん。
javascriptの知識無いとブックマークレットは作るの大変だよ。
win IEでは動いた。
document.とかってどこまで省略していのかわからん。
window.window.window.window.window.window.window.window.window.window.window.window.alert("window!!");
windowオブジェクトの中にwindowプロパティが循環参照になってるからこんなことも出来る
windowオブジェクトの中にwindowプロパティが循環参照になってるからこんなことも出来る
>>691
吹いたw
吹いたw
HTMLタグに書いたイベントハンドラの実行コンテキストの件は新鮮だったな。
こんな振舞いをするとは。俺も知らなかった。
こんな振舞いをするとは。俺も知らなかった。
はっきり言えばJS1.0からあってHTML5にも明記されている
IEはもっと複雑なルールがあるからMSDNでも見ろ
IEはもっと複雑なルールがあるからMSDNでも見ろ
>>696
それって意味あるの?
それって意味あるの?
>>697
ぜんぜんちがう
ぜんぜんちがう
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.96 + (1001) - [97%] - 2012/1/28 23:01
- + JavaScript の質問用スレッド vol.86 + (1001) - [97%] - 2011/5/27 21:50
- + JavaScript の質問用スレッド vol.74 + (1001) - [97%] - 2009/12/1 6:08 ○
- + JavaScript の質問用スレッド vol.75 + (1001) - [97%] - 2010/1/23 1:07 ○
- + JavaScript の質問用スレッド vol.77 + (1001) - [97%] - 2010/5/8 19:06
- + JavaScript の質問用スレッド vol.78 + (1001) - [97%] - 2010/6/25 3:53
- + JavaScript の質問用スレッド vol.79 + (1001) - [97%] - 2010/9/11 6:50
- + JavaScript の質問用スレッド vol.126 + (348) - [95%] - 2023/1/12 17:00
- + JavaScript の質問用スレッド vol.126 + (952) - [95%] - 2015/11/18 13:15
- + JavaScript の質問用スレッド vol.106 + (1001) - [95%] - 2013/7/20 9:30
- + JavaScript の質問用スレッド vol.116 + (1002) - [95%] - 2014/7/1 0:45
- + JavaScript の質問用スレッド vol.136 + (1001) - [95%] - 2019/1/8 11:30
- + JavaScript の質問用スレッド vol.94 + (1001) - [95%] - 2012/1/8 15:46
- + JavaScript の質問用スレッド vol.81 + (1001) - [95%] - 2010/12/10 20:01
- + JavaScript の質問用スレッド vol.82 + (1001) - [95%] - 2011/1/19 7:54
- + JavaScript の質問用スレッド vol.84 + (1001) - [95%] - 2011/3/30 7:32
- + JavaScript の質問用スレッド vol.99 + (1001) - [95%] - 2012/5/7 4:32
トップメニューへ / →のくす牧場書庫について