タグ付けされた質問 「javascript」

ECMAScript(JavaScript / JS)とそのさまざまな方言/実装(ActionScriptを除く)でのプログラミングに関する質問。このタグが単独で使用されることはほとんどありませんが、ほとんどの場合、[node.js]、[jquery]、[json]、および[html]タグに関連付けられています。

11
JavaScriptで可能な{}キャッチなしで{}を試しますか?
何かを返すか、エラーをスローする関数がいくつかあります。メイン関数でこれらをそれぞれ呼び出し、各関数から返された値を返すか、最初の関数がエラーをスローした場合は2番目の関数に進みます。 だから基本的に私が現在持っているのは: function testAll() { try { return func1(); } catch(e) {} try { return func2(); } catch(e) {} // If func1 throws error, try func2 try { return func3(); } catch(e) {} // If func2 throws error, try func3 } しかし、実際にはtryそれを返したいだけです(つまり、エラーがスローされない場合)。catchブロックはいらない。ただし、try {}(未使用)catch {}ブロックがないため、などのコードは失敗します。 私は入れjsFiddleに例を。 それで、catch同じ効果を達成しながらこれらのブロックを削除する方法はありますか?

6
プログラムによるJavaScript関数へのコードの追加
元のJSコードを変更せずに、既存のJSライブラリをカスタマイズしようとしています。このコードは、アクセスできるいくつかの外部JSファイルをロードします。私がやりたいことは、全体を2番目のJSファイルにコピーして貼り付けることなく、元のファイルに含まれている関数の1つを変更することです。 したがって、たとえば、立ち入り禁止のJSには、次のような機能があります。 var someFunction = function(){ alert("done"); } その関数になんらかのJSコードを追加または追加できるようにしたいのですが。その理由は主に、元の変更不可能なJSでは関数が非常に大きく、そのJSが更新されると、上書きした関数が古くなるためです。 これが可能かどうかは完全にはわかりませんが、確認したいと思いました。

10
スクリプトを使用してChromeがシークレットモードであるかどうかを判断できますか?
スクリプトを使用して、Google Chromeがシークレットモードであるかどうかを確認することはできますか? 編集: 私は実際にはユーザースクリプトを介して可能であることを意味しましたが、答えはJavaScriptがWebページで実行されていることを前提としています。ここで、ユーザースクリプトに関する質問を再確認しました。

5
ページをリロードせずにクエリ文字列を変更する
フォトギャラリーを作成しています。写真を閲覧するときにクエリ文字列とタイトルを変更できるようにしたいと考えています。 私が探している動作は、連続/無限ページの一部の実装でよく見られます。クエリ文字列を下にスクロールしても、ページ番号(http://x.com?page=4)が増加し続けます。これは理論的には単純ですが、主要なブラウザで安全なものを求めています。 私はこの素晴らしい投稿を見つけ、で例を追おうとしましたwindow.history.pushstateが、それは私にはうまくいかないようです。また、ブラウザーの履歴を変更する必要がないので、それが理想的かどうかはわかりません。 写真が変更されるたびにページをリロードすることなく、現在表示されている写真をブックマークする機能を提供できるようにしたいだけです。 以下は、クエリ文字列を変更する無限ページの例です。http://tumbledry.org/ UPDATEはこのメソッドを見つけました: window.location.href = window.location.href + '#abc'; それは私のために動作するように見えますが、私は新しいクロムを使用しています。それはおそらく古いブラウザでいくつかの問題を引き起こすでしょうか?

7
コンソールで変数をトレースするとき、新しい行を作成するにはどうすればよいですか?
だから私は何か単純なことをやろうとしています、1つのconsole.logステートメントを使用して、コンソールのトレースを数行に分割したいと思います。 console.log('roleName = '+roleName+' role_ID = '+role_ID+' modal_ID = '+modal_ID+\n+'related = '+related); 上記をどのように記述して、以下を追跡しますか? roleName = test role_ID = test modal_UD = test related = test の代わりに roleName = test role_ID = test modal_UD = test related = test 私は似ているように見える他のいくつかの質問をチェックしましたが、どれも助けていないか、別のことについて話していません。 ご覧いただきありがとうございます!

7
Reactコンポーネントを毎秒更新
私はReactをいじっていてDate.now()、画面にレンダリングするだけの次の時間コンポーネントを持っています: import React, { Component } from 'react'; class TimeComponent extends Component { constructor(props){ super(props); this.state = { time: Date.now() }; } render(){ return( <div> { this.state.time } </div> ); } componentDidMount() { console.log("TimeComponent Mounted...") } } export default TimeComponent; このコンポーネントを毎秒更新して、Reactの観点から時間を再描画する最良の方法は何ですか?

5
jQueryを使用して、divに特定のクラスの子があるかどうかを確認する
私は#popup、クラスのいくつかの段落で動的に埋められているdivを持ってい.filled-textます。#popupこれらの段落の1つが含まれているかどうかをjQueryに教えようとしています。 私はこのコードを持っています: $("#text-field").keydown(function(event) { if($('#popup').has('p.filled-text')) { console.log("Found"); } }); 助言がありますか?
114 javascript  jquery 

9
Vue-Routerを使用してVueでURLクエリパラメータを設定する方法
入力フィールドを変更するときにVue-routerでクエリパラメータを設定しようとしています。他のページに移動したくないが、同じページのURLクエリパラメータを変更したいだけです。次のようにしています。 this.$router.replace({ query: { q1: "q1" } }) ただし、これによってページが更新され、y位置が0に設定されます。つまり、ページの上部にスクロールします。これは、URLクエリパラメータを設定する正しい方法ですか、それともより適切な方法ですか。 編集: これが私のルーターコードです: export default new Router({ mode: 'history', scrollBehavior: (to, from, savedPosition) => { if (to.hash) { return {selector: to.hash} } else { return {x: 0, y: 0} } }, routes: [ ....... { path: '/user/:id', component: UserView }, ] })

30
Node.js Port 3000はすでに使用されていますが、実際には使用されていませんか?
私はnode.jsプロジェクトで数週間働いており、それは素晴らしい仕事をしています。通常、私はnpm start自分のアプリを実行してブラウザーのlocalhost、ポート3000で表示するために使用します。 今日、npm startの使用中に次のエラーが発生し始めました。 Server started on port 3000 Port 3000 is already in use リソースモニターを確認しましたが、ポート3000で他のプロセスを実行していません。このエラーメッセージが表示されるのはなぜですか? 私のapp.jsには、ポートを設定する次のコードがあります...これは間違っていますか?以前は問題なく動作していたため、何が悪いのかわかりません。 // Set Port app.set('port', (process.env.PORT || 3000)); app.listen(app.get('port'), function() { console.log('Server started on port '+app.get('port')); }); 助けてくれてありがとう! 編集: netstatとTCPViewを実行して、どのプロセスがポートを使用しているかを確認しましたが、そのポートを使用しているものはありません。ラップトップを再起動してみましたが、それでも同じエラーが発生します。
114 javascript  node.js  npm  port 

10
ReactフックuseState()とオブジェクト
React with Hooksで、状態を更新する正しい方法は何ですか?ネストされたオブジェクトですか? export Example = () => { const [exampleState, setExampleState] = useState( {masterField: { fieldOne: "a", fieldTwo: { fieldTwoOne: "b" fieldTwoTwo: "c" } } }) (フィールドの追加)setExampleStateに更新exampleStateするには、どのように使用しaますか? const a = { masterField: { fieldOne: "a", fieldTwo: { fieldTwoOne: "b", fieldTwoTwo: "c" } }, masterField2: { fieldOne: "c", fieldTwo: { …

14
ie8 var w = window.open()-「メッセージ:無効な引数です。」
IE8のみの問題があるサイトがあります。 コードは次のとおりです。 var w = window.open(urlstring, wname, wfeatures, 'false'); エラーは: メッセージ:無効な引数です。 行:419文字:5 コード:0 URI:http://HOSTNAME/js_context.js コードの行番号を確認しました(「行」と「URI」は正しい)。IE8の以降のバージョンでは、これは正確であると考えられています。 アラートをダンプすることにより、呼び出しのすべての着信パラメーターをチェックしましたが、それらはすべて有効に見えます。 この問題はFFでは発生しません(おそらく3)。 更新: 「var w」を実行するときにwindow.open()の結果を割り当てる方法に問題があるようです。行を2つのステートメントに分割すると、IE8で機能します。 UPDATE2: に基づく: http://javascript.crockford.com/code.html 関数をすぐに呼び出す場合は、生成される値が関数自体ではなく関数の結果であることを明確にするために、呼び出し式全体を括弧で囲む必要があります。 これはまさにここで起こっていることではありませんが、IE8の互換性モードでは、原則を適用することで問題が解決されることがわかりました。 var w = (window.open(urlstring, wname, wfeatures, false));

5
AngularJSの親スコープ変数を更新する
2つのコントローラーがあり、1つは別のコントローラーにラップされています。これで、子スコープが親スコープからプロパティを継承することがわかりましたが、親スコープ変数を更新する方法はありますか?これまでのところ、明確な解決策はありません。 私の状況では、フォーム内にカレンダーコントローラがあります。送信時にフォームに開始日と終了日が含まれるように、親スコープ(フォーム)から開始日と終了日を更新したいと思います。


3
JavaScript置換/正規表現
この関数を考えると: function Repeater(template) { var repeater = { markup: template, replace: function(pattern, value) { this.markup = this.markup.replace(pattern, value); } }; return repeater; }; どうすればthis.markup.replace()グローバルに置換できますか?ここに問題があります。私がこのようにそれを使うならば: alert(new Repeater("$TEST_ONE $TEST_ONE").replace("$TEST_ONE", "foobar").markup); アラートの値は「foobar $ TEST_ONE」です。 変わったら Repeater次のようすると、Chromeでは何も置き換えられません。 function Repeater(template) { var repeater = { markup: template, replace: function(pattern, value) { this.markup = this.markup.replace(new RegExp(pattern, …

9
Knockout.jsで監視可能なバインディングをクリア/削除するにはどうすればよいですか?
ユーザーが複数回実行できるWebページに機能を構築しています。ユーザーのアクションを通じて、ko.applyBindings()を使用してオブジェクト/モデルが作成され、HTMLに適用されます。 データバインドされたHTMLは、jQueryテンプレートを介して作成されます。 ここまでは順調ですね。 2番目のオブジェクト/モデルを作成してこの手順を繰り返し、ko.applyBindings()を呼び出すと、2つの問題が発生します。 マークアップには、以前のオブジェクト/モデルと新しいオブジェクト/モデルが表示されます。 オブジェクト/モデルのプロパティの1つに関連するjavascriptエラーが発生しますが、マークアップではレンダリングされます。 この問題を回避するには、最初のパスの後でjQueryの.empty()を呼び出して、すべてのデータバインド属性を含むテンプレート化されたHTMLを削除し、DOMに存在しないようにします。ユーザーが2番目のパスのプロセスを開始すると、データにバインドされたHTMLがDOMに再度追加されます。 しかし、私が言ったように、HTMLがDOMに再度追加され、新しいオブジェクト/モデルに再バインドされると、最初のオブジェクト/モデルからのデータがまだ含まれ、まだ発生しないJSエラーが発生します最初のパスの間。 結論は、マークアップがDOMから削除されていても、Knockoutがこれらのバインドされたプロパティを保持していることです。 したがって、私が探しているのは、これらのバインドされたプロパティをKnockoutから削除する方法です。観測可能なモデルがなくなったことをノックアウトに伝えます。これを行う方法はありますか? 編集 基本的なプロセスは、ユーザーがファイルをアップロードすることです。次にサーバーはJSONオブジェクトで応答し、データにバインドされたHTMLがDOMに追加されます。次に、JSONオブジェクトモデルがこのHTMLにバインドされます。 mn.AccountCreationModel = new AccountViewModel(jsonData.Account); ko.applyBindings(mn.AccountCreationModel); ユーザーがモデルでいくつかの選択を行うと、同じオブジェクトがサーバーにポストバックされ、データバインドされたHTMLがDOMから削除され、次のJSを取得します mn.AccountCreationModel = null; ユーザーがもう一度これを実行する場合は、これらのすべてのステップが繰り返されます。 私はコードがjsFiddleデモを行うにはあまりにも「関与」していると思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.