+ JavaScript の質問用スレッド vol.140 +
■ このスレッドは過去ログ倉庫に格納されています
JavaScript を自ら学ぶ人のための質問スレッドです。
次スレは>>950が(本スレで改善案があれば考慮して)立ててください
■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」から解離した議論はよそでやること。
■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。
【条件】期待する回答の条件を書いてください。
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです
■前スレ
+ JavaScript の質問用スレッド vol.139 +
https://mevius.5ch.net/test/read.cgi/hp/1555750241/ >>131 の発言の意味が良く分からないのですが、どういうことでしょうか。
fieldset 要素は flow content 要素を入れられる模様
https://www.w3.org/TR/html5/sec-forms.html#the-fieldset-element
> Content model:
> Optionally a legend element, followed by flow content.
div 要素も section 要素も、flow content に含まれる模様
https://www.w3.org/TR/html5/dom.html#flow-content-2
この2点を前提とすると、何がどう問題なのか分からなくなってしまいまして。 よりその状況向けの要素があるからそっちを使えってことじゃないの
まあ別に好きにやればいいと思うけど >>131は「個人の感想」だろ
なんでこの質問者は荒らしに構うのかね なにいってるのか分からんが、>>160が荒らしといいたいのか ようは一切レスをするなってこと。
荒らしに構うなということ自体が、荒らしにレスしてることになる その論理だと、>>162-166が全員荒らしなわけだが
>>162-163は同じ主張してるのに、なんて争そうのかね なんで荒らしに構うと荒らしになるんだ?
荒らしに構うなって言ってるだけだろ
正確には荒らしと思うやつにレスするな。
反論もするな。黙って受け入れろってことだが >>168
なぜ>>160に構うことが荒らしになるんだ? >>169
誰が「>>160に構うことが荒らしになる」と
言ってるのか、まずそれを言おうか? >>172
荒らしに構うなって書いてあるだけだよね?
どこに荒らしに構うと、荒らしになるって書いてあるの?
なにか弁明することあるかい?w >>174
お前、それ荒らしだぞ
もう書き込み禁止ね >>174
>>160に構ってはいても、荒らしに構ってないから、その指摘は不適当 >>175
確かに>>174は荒らしだな
すまんかった まじめに読んでしまったのが間違いだったのかなあ
>>131 は上から目線で発言してるだけで、内容を読んだらブーメランだった、と
かつての位置付けは存じませんが、fieldset の現在の位置付けからしたら、完全に誤った内容だった、と
そりゃ確かに section 要素や div 要素は、避けるべきものであったり最終手段とすべきものであって
今回のケースでは span あたりの方が適切だったのかも知れませんが
https://www.w3.org/TR/html5/sections.html
https://www.w3.org/TR/html5/grouping-content.html#elementdef-div
https://www.w3.org/TR/html5/textlevel-semantics.html#the-span-element
…まだ確信が持てて無いので「ココ違うよボケカス」的なもので良いので指摘ねがいます… OS:Win Vista,ブラウザ:IE8使用(IE9はセキュリティが厳しいのでダウングレードしています。)
JSでテキスト(data1.txt)の中身を読み込んで、ブラウザでalert()出力したく思って
いますが何も表示されないので困っています。
テスト段階なのでdata1.txtは1行のみの極単純なものです。
(テキストの中身: 西暦,為替[円/$],名目GDP[兆円],間接税率[%],税収[兆円])
<書いた内容> ※すいません全部書きます。
function readFile(name) {
iomode = 1;
format = 0;//ASCIIフォーマットで読み込む
// ファイルシステムオブジェクト
myobject = new ActiveXObject("Scripting.FileSystemObject");
// OpenTextFile()でファイルを開く
file = myobject.OpenTextFile(name, iomode, true, format);
data = "";
// eofが来るまで 1行ごとに読む
while (!file.AtEndOfStream) {
// ReadLine() で1行読む
data += file.ReadLine()+"\n";
}
// ファイルを閉じる
file.Close();
// データを返す
return data;
}
window.alert(readFile("data1.txt")+" です");
すいませんが問題点をご指摘願います。 >>179
たかがHTMLに避けるべきものも最終手段もクソもないよ
著しく非常識でないのなら好き勝手に書けばいい sage を外し忘れてたもんで
一連のQ&Aでの発言まとめときます
おかしなこと言ってる可能性たかいかも
>>75
>>76
>>78 (バージョン古くても平気な御人は無視すべきだったかも)
>>92
>>93
>>95
あたりです
レスアンカー多いと怒られたので途中まで >>180
15年くらい時間が巻き戻った気分!
急IEのJavaScriptはほぼJScriptのラッパーで
JScriptも半分くらいはActiveXのラッパーだから
そう言うこともあるもんだ
同期・非同期が問われるようなことするときは特に 荒らしに構うなっていう書き込み自体は、荒らしに対するレスでは無いから、荒らしにならない!
正常な人に対する忠告だから
一方、荒らしに反応して書き込みを続ける者は、荒らし!
荒らしはレスが欲しい。レス乞食
荒らしは無視されるのが大嫌いだから、無視すべし! file = myobject.OpenTextFile(name, iomode, true, format);
ここで、10秒ぐらい、sleep すれば?
読み込むまで、確実に待つ
while (!file.AtEndOfStream) { >>184
だからそういう書き込みは、このスレの内容と
何の関係もねーだろ。関係ない話すんな >>184が人気すぎて、jQuery厨の俺も嫉妬(笑) >>180
相対パスはデスクトップ基準になるので絶対パスで指定する var str = "2x*(sqrt(-3/7+5))"
みたいな文字列があったときに、sqrtの後に続くカッコ内の"-3/7+5"だけ取り出そうと思ったら
どんな処理をするのがスマートですか? >>191
ちょっと質問が説明不足だったので補足すると
以下のように、ランダムな文字列があって
var str1 = "2*x*(sqrt(-3/7+5))"
var str2 = "4*x/3*(3*sqrt(-1/3+4*x))^2"
var str3 = "(4*x+2)^3/3*(3*sqrt(-1/2+2*x^2))^4"
sqrtの後に続くカッコ内の文字
str1であれば、-3/7+5
str2であれば、-1/3+4*x
str3であれば、-1/2+2*x^2
をそれぞれ取り出したい、といった場合、どういう処理をするのが良いですか? 正規表現で抜き出す
str.match(/sqrt\((.+?)\)/)[1] str.replace(/.*sqrt\((.*?)\).*/, '$1') そんな特定の場合にしか使えない処理が
何の役に立つっていうんだろう? jQスレにも貼ったがこちらにも貼っておく
jQueryの脆弱性が発覚した
https://portswigger.net/blog/abusing-jquery-for-css-powered-timing-attacks
jQuery独自のセレクタを巧みに使うことでタイミングアタックで情報が抜かれてしまう
直接使っている部分で絶対にセレクタに想定外の文字列が入ることがなくとも
プラグインやjQを利用するライブラリでどうなっているのか分からない
とりあえず当分は使われている全てのjQuery、もしくは全てのスクリプトの全ての関数定義
function〜(){〜を一括置換処理して
一行目にif((''+arguments[0]).length>30)throw 'Err'
などと入れることを勧める >>200
ここはライブラリのスレでも無いし…
vanilla js 自体の穴じゃないし… 荒らしは相手にするな!
ソースコードを書かない奴は、荒らしだから無視しろ!
プログラマー以外とは、話をしないように!
荒らしは、30分毎に書き込むから、要注意! JavaScript初心者です。
classBのオブジェクトからmethodAを呼び出したいんですが
methodAがないというエラーが出ます。
--------------------------------------------
function classA () {
}
classA.prototype = {
methodA: function() {
console.log('classA methodA');
},
methodB: function() {
console.log('classA methodB');
}
};
function classB () {
}
classB.prototype = new classA();
classB.prototype = {
methodB: function() {
console.log('classB methodB');
}
};
--------------------------------------------
継承先のクラスで特定のメソッドだけオーバーライドしたい場合は
classB.prototype.methodB = function() {
console.log('classB methodB');
};
のように個別に書いていくしかないんでしょうか。 はい
IE対応しなくていいならclass構文使えばよろし とりあえず >>205 を参考に以下の書き方をしたら
思ったとおりの動作にはなったっぽいです。
--------------------------------------------
function classB () {
}
classB.prototype = Object.create(classA.prototype, {
methodB: { value function() {
console.log('classB methodB');
}}
});
--------------------------------------------
Chromeで動かす前提ならやっぱりclass構文使うほうがいいんですかね Object.assign()使えるけど
圧倒的にclass構文で行くべき
https://jsfiddle.net/pL65gw4k/ まだIE30%ぐらいいるのかなとおもったら
もう10%切ってるのね
まー国内に限定すればもっといそうだけど なんか最近
過去からタイムリープしてきてる人がいるな… すいません、質問になるのか分からないのですが
もしよろしければご教授ください。
ある案件でjqueryのライブラリをいくつか使った
数ページのちょっとしたサイトを納品しました。
納品先はクライアントではなく、
クライアントのサーバを管理する別の制作会社です。
で先日そこから突然サーバOSやインストールした
プログラム一覧が送られてきて「jqueryのバージョンもご確認ください」
とか意味不明なことを言ってきたのですが
(実際そこが作業したものの一覧ではなく
ホスティング業者が用意したfedora標準のリスト)
そこの会社の担当者は超絶馬鹿ってことで宜しいでしょうか。。
OSとミドルウェアとフロントエンドの区別も付かんとは。。
しかも自分のとこがjsの何を入れたかも分からんという。。。 >>213
ここはJavaScriptの質問用スレッド nodeのグローバルにjQueryがインストールされている可能性が微レ存 画像のスクロールに合わせてセレクトボックスを変更するにはどうすればいいでしょうか?
<img src="1.jpg" alt="">
<img src="2.jpg" alt="">
<img src="3.jpg" alt="">
<select style="left:0;top:0;position:fixed"></select>
<script>
for (var i=0, len=document.images.length; i < len; i++) {
option = document.createElement('option');
option.value = i;
option.text = i;
document.getElementsByTagName('select')[0].appendChild(option);
}
const observer = new IntersectionObserver((entries) => {
if (entries.isIntersecting) {
option.selected = true;
} else {
option.selected = false;
}
});
const img = document.querySelectorAll('img');
img.forEach(img=>{observer.observe(img)})
</script> >>218
entriesは配列
const selectbox = document.querySelector('select');
for (let i=0, len=document.images.length; i < len; i++) {
const option = document.createElement('option');
option.value = i;
option.text = i;
selectbox.appendChild(option);
document.images[i].dataset.value = i;
}
const observer = new IntersectionObserver(entries => {
entries.forEach(entry => {
if (entry.isIntersecting) {
selectbox.value = entry.target.dataset.value;
}
});
});
const img = document.querySelectorAll('img');
img.forEach(img => observer.observe(img)); 無駄を削ぎ落とした
const observer = new IntersectionObserver(entries => {
const entry = entries.reverse().find(entry => entry.isIntersecting);
if (entry) {
$('select').val(entry.target.dataset.value);
}
});
$('img').each(function(i) {
$('select').append($('<option>', {value: i, text: i}));
this.dataset.value = i;
observer.observe(this);
}); Java scriptの心得がほとんど無い為、情報不足の折はご容赦ください。
マスターテーブルA,入力テーブルBと2つのテーブルがあり、Bテーブルの「分類A」を入力すると
Aテーブルの分類B、分類Cより
Bテーブルの分類D、分類Eへ値を返したい時、下記のスクリプトを
一部編集して使用するようなのですが、どこに各値の編集をすれば
よろしいでしょうか。
ご教示頂ければ幸いです。よろしくお願いいたします。
$p.events.on_editor_load = function () {
//Bテーブルの「分類A」の値が変更されるたびに呼び出されるイベント
$(document).on('change', '#Results_ClassA', function () {
//Bテーブルの「分類A」に値がセットされている場合のみ、Aテーブルの指定したレコードの値を取得する
if ($('#Results_ClassA').val()) {
$p.apiGet({
//Bテーブルの「分類A」の値(レコードID)を指定
'id': $('#Results_ClassA').val(),
'done': function (0) {
//Bテーブルの項目にAテーブルから取得した項目の値をセット
$p.set($('#Results_ClassB'), data.Response.Data[0].ClassB);
$p.set($('#Results_ClassC'), data.Response.Data[0].ClassC);
},
'fail': function (data) {
console.log(data);
}
});
} else {
//Bテーブルの「分類A」に値がセットされていない場合、Bテーブルの項目に空文字をセット
$p.set($('#Results_ClassA'), '');
$p.set($('#Results_ClassA'), '');
}
});
} スレタイ見て自分の書き込み見てなんにも思わないようなら
情報不足の前に質問者としての心構えが不足している
もしも気づけたら知恵遅れの方も訂正入れとけよ 'done': function (0) {
//Bテーブルの項目にAテーブルから取得した項目の値をセット
$p.set($('#Results_ClassB'), data.Response.Data[0].ClassB);
$p.set($('#Results_ClassC'), data.Response.Data[0].ClassC);
},
done 内で、data という変数を使うなら、引数に、data を渡さないといけないのでは?
>'done': function (0) {
'done': function (data) {
Aテーブルの分類B、分類Cを、Bテーブルの分類D、分類Eへ設定するなら、
data.Response.Data[0].ClassB, data.Response.Data[0].ClassC を、
Bテーブルの分類D、分類Eへ設定すればよい
ここは、JavaScript のスレなので、
jQuery の質問は、下のスレへ移動してください!
+ JavaScript & jQuery 質問用スレッド vol.7 + [無断転載禁止]c2ch.net
https://mevius.5ch.net/test/read.cgi/hp/1478002550/l50 >>227
jQueryにsetなんてメソッドはありません。
jQueryじゃないのならこのスレですね 【速報】金券五百円分とすかいらーく優侍券をすぐもらえる
https://pbs.twimg.com/media/D8I_rBwU0AIZUL2.jpg
@ スマホでたいむばんくを入手
A 会員登録を済ませる
B マイページへ移動する
C 招待コード→招待コードを入力する [Rirz Tu](スペース抜き)
今なら更に4日18時までの登録で2倍の600円の紹介金を入手
クオカードとすかいらーく優待券を両方ゲットできます。
数分で出来ますのでお試し下さい >>229
一万円の請求来たんだけどどういうこと?? >>229
警察に相談する
事件に巻き込まれた場合は、警察に相談することが鉄則です。しかし、本当に詐欺にあったのかわからないため、警察に相談しづらいケースもあります。警察への相談に関して、パターン別に通報先をご紹介します。
相談窓口
詐欺かどうかわからないが何となく怪しさを感じている場合は、「#9110」の相談窓口に連絡しましょう。その地域を管轄する警察の相談窓口に繋がります。
必要に応じて、関係機関の紹介や、解決に向けてアドバイスしてもらえます。緊急を要する事件や事故は110ですが、緊急性のないものは#9110にかけましょう。むやみに110にかけると、他の緊急性のある事件や事故への対応が遅れる恐れがあります。
電話番号:#9110
受付時間:月曜〜金曜8:30〜17:15
休業日:土日祝(当直または音声案内) >>229
国民生活センターに相談する
国民生活センターは各地域にある消費生活センターのことで、詐欺被害にあった場合には、今後とるべき行動や再び被害にあわないための対策などをアドバイスしてもらえます。
また、業者と和解できるようあっせんしたり、解決に向けて協力するよう業者に伝えたりも可能です。警察に被害届を受理してもらえなかったり、他の関係機関に相談しても解決に至らなかったりする場合に相談しましょう。
電話番号:188(いやや)
受付時間:地域で異なる
休業日:地域で異なる(年中無休、年末年始を除く窓口が多い) >>228
えええ…
上の質問に答えるつもりはないけど
setは$pのメソッドだろ だから$pの使い方を知りたいなら、(jQueryではなく)
$pのクラスのマニュアルを見れと言ってる
jQueryの話じゃないんだからjQueryスレに誘導されても困る 質問者も$pが何のライブラリから来てるか分かってなさそうだけどな Javascriptでの画面サイズの取得には、
window.innerWidthやscreen.widthとか複数の手段がありますが、
iPhoneXのような変態ディスプレイで取得できる値も
他のスマホと同様に実際の領域との認識で良いのでしょうか? $(document).on('change', '#Results_ClassA', function () {
'done': function (0) {
'fail': function (data) {
これは、jQuery じゃないの?
>'done': function (0) {
'done': function (data) {
引数を、data にしないといけないのでは? on changeにdoneとかfailとかないから明らかに違う vanilla js で $ マーク使う場面ってどんなん undefined が変数名としても使えるようなもんか(絶対違 >>239
実際の領域を取得する方法は多岐にわたる 初歩的な質問かもしれませんが…
外部化したJSを、別のJSでdocument writeで出力した場合、元の内容は正しく記述されるのでしょうか?
入れ子構造のような形でJSを出力できるのかな、みたいな document.write は、使うな!
一旦、そのページのすべての要素が削除されてしまうから!
つまり、上書きされる ナウなヤングはdocument.writelnだよな! 呼び出し元
<script type="module" src="main.js">
main.js
import {name} from './module.js';
console.log(name);
module.js
export const name = "Taro";
こんな感じで動くっぽい @ Firefox 67.0.1
参照: https://analogic.jp/module-summary/ んで
main.js
import {hikizan} from './hikizan.js';
console.log(hikizan(10,1));
hikizan.js
import {tasizan} from './tasizan.js';
export const hikizan = function(a,b){
return tasizan(a,-b)
}
tasizan.js
export const tasizan = function(a,b){
return a+b;
};
これで多分動く…とおもう Parcel とか WebPack とか CommonJS とか AMD とか良く分からん…
$.getScript も良く分からん… 基本的には、VSCode, Node.js を使えばよい
Node.js は、Ruby のライブラリを置き換えたもので、CommonJS 方式(require)で読み込む。
ただし、Node.jsのrequireは同期処理で、CommonJSは非同期処理。
AMD 方式は、最近では聞かない
WebPack, browserify は、モジュールバンドラー。
Babel は、ES6(ES2015)をES5 に変換する。
Gulp, npm-scripts は、タスクランナー ■ このスレッドは過去ログ倉庫に格納されています