私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.76 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
>>198
あんたがJavaScript初心者かどうかは我々には関係のないこと。
動作するけどエラーメッセージが出るのね。IEとその他の
振り分けにtry-catchを使っているのをif文に直したらどうかな。
if(document.styleSheets) {
...
} else {
...
}
とか
if(window.addEventListener) {
...
} else {
...
}
のように。試してないけどね。
あんたがJavaScript初心者かどうかは我々には関係のないこと。
動作するけどエラーメッセージが出るのね。IEとその他の
振り分けにtry-catchを使っているのをif文に直したらどうかな。
if(document.styleSheets) {
...
} else {
...
}
とか
if(window.addEventListener) {
...
} else {
...
}
のように。試してないけどね。
jqueryと使って、左メニューにアコーディオンメニューを作成し、
右メニューにコンテンツを表示したいと思っています。
こちらのサイトで ttp://triplexxx.jp/archives/150
公開されているプログラムがまさに理想通りの動きをしてくれているので、
このプログラムを参考に作成しているのですが、サブメニューにリンクを貼っても
そのリンク先のページに飛ばなくて困っています。
(このサイトでmenu 1-1やmenu 1-2のことです。)
せっかくアコーディンメニューがあってもリンク先へ飛ばないようなら意味がありません。
どうすればいいかご教授お願いします。
ちなみにこのサイトでダウンロードしたファイルそのままで、サブメニューのaタグを書き換えた
ものでも飛びませんでした。
jsでreturn falseがサブメニューの方にも適応されてる。
li > aの前に > をつければ治った。
jquery触った事ないから仕様的に間違っているかもしれない。
li > aの前に > をつければ治った。
jquery触った事ないから仕様的に間違っているかもしれない。
グローバル変数 window['w'+i]
ローカル変数は 関数(変数)名['w'+i]?
ローカル変数は 関数(変数)名['w'+i]?
>>206
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/10_Execution_Contexts.html#section-10.1.6
内部的には同様にオブジェクトが存在してるけどスクリプトからのアクセスはできない
アクセスできようができまいが普通はコンテナを用意する
var container = {};
container['w'+i] = i;
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/10_Execution_Contexts.html#section-10.1.6
内部的には同様にオブジェクトが存在してるけどスクリプトからのアクセスはできない
アクセスできようができまいが普通はコンテナを用意する
var container = {};
container['w'+i] = i;
createImageData, getImageData, putImageData メソッド - Canvasリファレンス - HTML5.JP
http://www.html5.jp/canvas/ref/method/getImageData.html
サンプルをコピペ実行してから
自分のやりたいようにやってみれ
http://www.html5.jp/canvas/ref/method/getImageData.html
サンプルをコピペ実行してから
自分のやりたいようにやってみれ
operaの最新版にて、<td>セル内のテキスト位置を 下方移動させるために、Javascriptにて、
エレメントのstyle.verticalAlignをonclickハンドラ内で top, middle, bottomのようにかえると、再描画カスがのこります。
回避方法を教えてください。下記の回避方法を試しましたが駄目でした。
① style.visibility の値をhiddenにして移動後、visibleにする。
② style.colorの値をbackgroundColorの値にして、移動後colorを書き戻す。
ちなみに移動後、alert()を挟むとなおりますが・・・
I.E. 7 , google chrome 4.0.2, F.F. 3.6 いずれでもこのような問題は起こらないことを確認しています。
エレメントのstyle.verticalAlignをonclickハンドラ内で top, middle, bottomのようにかえると、再描画カスがのこります。
回避方法を教えてください。下記の回避方法を試しましたが駄目でした。
① style.visibility の値をhiddenにして移動後、visibleにする。
② style.colorの値をbackgroundColorの値にして、移動後colorを書き戻す。
ちなみに移動後、alert()を挟むとなおりますが・・・
I.E. 7 , google chrome 4.0.2, F.F. 3.6 いずれでもこのような問題は起こらないことを確認しています。
>>212
うわ、ほんとだ。こりゃ Opera のバグだねぇ……。
一応、innerHTML を一旦消すことで回避できたよ。
function hoge(td) {
var html = td.innerHTML;
td.innerHTML = '';
switch (td.style.verticalAlign) {
case 'top':
td.style.verticalAlign = 'bottom';
break;
case 'bottom':
td.style.verticalAlign = 'middle';
break;
case 'middle':
default:
td.style.verticalAlign = 'top';
break;
}
td.innerHTML = html;
}
うわ、ほんとだ。こりゃ Opera のバグだねぇ……。
一応、innerHTML を一旦消すことで回避できたよ。
function hoge(td) {
var html = td.innerHTML;
td.innerHTML = '';
switch (td.style.verticalAlign) {
case 'top':
td.style.verticalAlign = 'bottom';
break;
case 'bottom':
td.style.verticalAlign = 'middle';
break;
case 'middle':
default:
td.style.verticalAlign = 'top';
break;
}
td.innerHTML = html;
}
その手のバグだと、確実に再描画させるためには、まずエレメント
を親要素(td)からremoveして、verticalAlignを変更して、改めて
挿入するとかが必要そうな気がする。それでも駄目なら、remove
してから cloneNode(true) でコピーしてからコピーしたものを
変更して挿入とか。
を親要素(td)からremoveして、verticalAlignを変更して、改めて
挿入するとかが必要そうな気がする。それでも駄目なら、remove
してから cloneNode(true) でコピーしてからコピーしたものを
変更して挿入とか。
greasemonkeyを介したjavascriptでは
canvasのgetImageData()を使ったピクセル操作は出来ないようです。
多分セキュリティーの問題だと思われます。
回答を下さった210さんと211さん、ありがとうございました。
canvasのgetImageData()を使ったピクセル操作は出来ないようです。
多分セキュリティーの問題だと思われます。
回答を下さった210さんと211さん、ありがとうございました。
>213さん
ありがとうございます。
簡単ですので、次回は、その手を使ってみようと思います。
>214さん
指摘の手を使って解決しました。
ほかのブラウザでは処理を通したくなかったので。
ありがとうございました。
ちなみにこんな感じです。
// opera再描画不良の対策
if( window.opera ) {
myrow.removeChild(mycel);
mycel2 = myrow.getElementsByTagName("td")[1];
myrow.insertBefore(mycel,mycel2);
}
mycel.style.visibility = "visible";
ありがとうございます。
簡単ですので、次回は、その手を使ってみようと思います。
>214さん
指摘の手を使って解決しました。
ほかのブラウザでは処理を通したくなかったので。
ありがとうございました。
ちなみにこんな感じです。
// opera再描画不良の対策
if( window.opera ) {
myrow.removeChild(mycel);
mycel2 = myrow.getElementsByTagName("td")[1];
myrow.insertBefore(mycel,mycel2);
}
mycel.style.visibility = "visible";
try-catchで、try内である条件の場合(≠エラー)にcatchに渡したいんだけど(アラート[1→3])、
なんか手っ取り早くこれはエラー!っていう宣言みたいなのできないかな?
↓でも動くんだけどスマートじゃないんだよね。 (test に入れる変数(testtest)は宣言してないもの=強制的にエラーにさせる。)
try {
alert('1');
if (0==0) {
var test = testtest;
}
alert('2');
} catch(e) {
alert('3');
}
なんか手っ取り早くこれはエラー!っていう宣言みたいなのできないかな?
↓でも動くんだけどスマートじゃないんだよね。 (test に入れる変数(testtest)は宣言してないもの=強制的にエラーにさせる。)
try {
alert('1');
if (0==0) {
var test = testtest;
}
alert('2');
} catch(e) {
alert('3');
}
セキュリティエラーなら null じゃなくて undefined だろ
なんらかのコンソールで確認したんならそう書いとけ
あとグリモンとか関係ない。same origin policy
なんらかのコンソールで確認したんならそう書いとけ
あとグリモンとか関係ない。same origin policy
a#id01 {background-color: #ff0000;}
相当のCSSの設定をJavaScriptで記述すると
document.getElementById("id01").style.backgroundColor = "#ff0000";
となりますが
a#id01:hover {background-color:#0000ff;}
相当のCSS設定(定義済みクラスの設定)をJavaScriptで記述するには
どのようにしたらいいですか?
相当のCSSの設定をJavaScriptで記述すると
document.getElementById("id01").style.backgroundColor = "#ff0000";
となりますが
a#id01:hover {background-color:#0000ff;}
相当のCSS設定(定義済みクラスの設定)をJavaScriptで記述するには
どのようにしたらいいですか?
>>220
あぁそれが例外のやつだったのか。マジでありがとう。すっきりした!
あぁそれが例外のやつだったのか。マジでありがとう。すっきりした!
document.styleSheets[0].insertRule('a#id01:hover {background-color:#0000ff;}');
かなぁ。あんまり自信ない。CSSにa.hoge:hover{background-color:#0000ff;}書いといて
document.getElementById("id01").className+=' hoge'したほうがいいかも。
かなぁ。あんまり自信ない。CSSにa.hoge:hover{background-color:#0000ff;}書いといて
document.getElementById("id01").className+=' hoge'したほうがいいかも。
insertRuleの第二引数わすれてた。
document.styleSheets[0].insertRule('a#id01:hover {background-color:#0000ff;}', 0);
document.styleSheets[0].insertRule('a#id01:hover {background-color:#0000ff;}', 0);
>>223-225
レスありがとう
JavaScriptで動的に生成したHTMLにCSS(HTML内容によって変わる)を設定したいので
document.getElementById("id01").style.hover.backgroundColor = "#0000ff";
みたいな書き方が出来ればなぁ・・・と
"a#id01:hover {background-color:#0000ff;}"自体を登録する方法ではこの文+styleタグを
innerHTMLでHTMLに挿入しても大差ないわけで・・・
レスありがとう
JavaScriptで動的に生成したHTMLにCSS(HTML内容によって変わる)を設定したいので
document.getElementById("id01").style.hover.backgroundColor = "#0000ff";
みたいな書き方が出来ればなぁ・・・と
"a#id01:hover {background-color:#0000ff;}"自体を登録する方法ではこの文+styleタグを
innerHTMLでHTMLに挿入しても大差ないわけで・・・
try/catch/throwによる例外のトラップがイベントで呼ばれた場合に思ったとおりに動かない
のですが何か上手い方法って無いですか?
のですが何か上手い方法って無いですか?
>>229
試してみるのでサンプルコードをください
試してみるのでサンプルコードをください
>>229
うまく行かない最小限のサンプルを作って貼る。嫌ならよそへ。
うまく行かない最小限のサンプルを作って貼る。嫌ならよそへ。
>>233
なるほどわかりました
なるほどわかりました
すいません
<body>
<input type="button" id="button01" value="Button">
<script type="text/javascript">
try {
function click(event) {
throw "click";
}
} catch(e) {
alert("Error: " + e);
}
// IEの場合はattachEventを使用
document.getElementById("button01").addEventListener("click", function(event){click(event);}, false);
</script>
</body>
こんなかんじです。よろしくお願いします
<body>
<input type="button" id="button01" value="Button">
<script type="text/javascript">
try {
function click(event) {
throw "click";
}
} catch(e) {
alert("Error: " + e);
}
// IEの場合はattachEventを使用
document.getElementById("button01").addEventListener("click", function(event){click(event);}, false);
</script>
</body>
こんなかんじです。よろしくお願いします
あ、すげぇ勘違いしてた。
そのtry catchはページが読み込まれたときにしか動かない。
関数clickの定義は問題なくされるから、catchは動かない。
try catchは関数の中に入れないと、その関数のエラーを知りたいという意味でならダメ。
function click(){
try{
もとのclickの中身
} catch (e) {
alert (e)
}
}
そのtry catchはページが読み込まれたときにしか動かない。
関数clickの定義は問題なくされるから、catchは動かない。
try catchは関数の中に入れないと、その関数のエラーを知りたいという意味でならダメ。
function click(){
try{
もとのclickの中身
} catch (e) {
alert (e)
}
}
ありがとう。ダメなんか・・・(´・ω・`)
関数ごとにtry/catchを書くのは手間だしバグの元なんだよなぁ・・・
関数ごとにtry/catchを書くのは手間だしバグの元なんだよなぁ・・・
関数を渡すとその関数内での例外をcatchするラッパー関数を
作って返すような関数を用意する。addEventListener等は直接
呼ぶ替わりに関数をラップして登録する補助関数を経由して
登録する。
作って返すような関数を用意する。addEventListener等は直接
呼ぶ替わりに関数をラップして登録する補助関数を経由して
登録する。
座標を与えられてエレメントを探す必要がありましたが、
elementFromPoint では frame の中まで見てくれないので、
以下の様な関数を作成しました(ブラウザは Mobile Safari)。
function findElementByPos(doc, x, y) {
var obj = doc.elementFromPoint(x,y);
if (obj.contentDocument) {
var elem = obj;
while (elem) {
x -= elem.offsetX; y -= elem.offsetY;
elem = elem.offsetParent;
}
var w = obj.contentWindow;
x -= w.pageXOffset; y -= w.pageYOffset;
return findElementByPos(obj.contentDocument, x, y);
}
return obj;
}
frame の中を見てくれるようにはなったのですが、x,yの調整が
上手くいかず間違った箇所の element を拾ってしまいす。
Javascript は殆ど始めてで勝手が分からないのですが、
frameset 中の frame の位置を求める一般的な方法はどんな感じなのでしょうか。
elementFromPoint では frame の中まで見てくれないので、
以下の様な関数を作成しました(ブラウザは Mobile Safari)。
function findElementByPos(doc, x, y) {
var obj = doc.elementFromPoint(x,y);
if (obj.contentDocument) {
var elem = obj;
while (elem) {
x -= elem.offsetX; y -= elem.offsetY;
elem = elem.offsetParent;
}
var w = obj.contentWindow;
x -= w.pageXOffset; y -= w.pageYOffset;
return findElementByPos(obj.contentDocument, x, y);
}
return obj;
}
frame の中を見てくれるようにはなったのですが、x,yの調整が
上手くいかず間違った箇所の element を拾ってしまいす。
Javascript は殆ど始めてで勝手が分からないのですが、
frameset 中の frame の位置を求める一般的な方法はどんな感じなのでしょうか。
Identifiersの定義上、element.style.background-colorがパース出来ないからだろ
element.style["background-color"]にしなかった理由はしらん
element.style["background-color"]にしなかった理由はしらん
そういやclassNameもそんな風に変えなくても
element["class"] でいいわけだよね。
element["class"] でいいわけだよね。
すいません、js苦手なんですけどちょっと質問させてください
こういうustreamのチャットをiframe内に入れて表示させて
http://www.ustream.tv/twitterjs/iframe?prefix=%40seikoito&suffix=+%28%40seikoito+live+at+http%3A%2F%2Fustre.am%2F93ul%29
CSSで文字色を変更したいです。
下記のようなサイトも参考にしたんですが、外部ドメインサイト(ustream.tv)だからなのか
うまくいかないみたいです
http://www.bit-hive.com/%7Etomita/JS/IframeCSS/
どなたか参考ページとかアドバイスいただけると助かります
こういうustreamのチャットをiframe内に入れて表示させて
http://www.ustream.tv/twitterjs/iframe?prefix=%40seikoito&suffix=+%28%40seikoito+live+at+http%3A%2F%2Fustre.am%2F93ul%29
CSSで文字色を変更したいです。
下記のようなサイトも参考にしたんですが、外部ドメインサイト(ustream.tv)だからなのか
うまくいかないみたいです
http://www.bit-hive.com/%7Etomita/JS/IframeCSS/
どなたか参考ページとかアドバイスいただけると助かります
>>247
エラーにならないからってelement.classでアクセスするアホが大量発生するだろうな
エラーにならないからってelement.classでアクセスするアホが大量発生するだろうな
前へ 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
トップメニューへ / →のくす牧場書庫について