[解決済み] Uncaught TypeError: JavaScript の関数で null(...) のプロパティ '1' を読み取ることができない
2022-02-02 04:35:22
質問
このメソッドは、モジュールの一部です。
Uncaught TypeError: Cannot read property '1' of null(…)
はある程度動作しますが、モジュール上の追加メソッドをブロックしているように見えます。
これは フィドル で、モジュール全体を含んでいます。
searchURL: function() {
function insertAfter(newNode, referenceNode) {
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
var link, url, parser, newPathName = '',
newstr = '',
doc = document,
avon_rep_container = doc.getElementById('avon_rep_container'),
avon_rep_container_id,
avon_rep_container_links,
avon_rep_container_images,
documentTableWrapper,
docBodyFirstChild,
full_width_container_1 = doc.getElementsByClassName('full-width-container')[1],
full_width_img_class_el = doc.getElementsByClassName('full-width-img')[0];
if (!avon_rep_container) {
avon_rep_container = doc.createElement('div');
avon_rep_container.setAttribute('id', 'avon_rep_container');
avon_rep_container.className = 'container-avon-representative-news';
avon_rep_container_links = avon_rep_container.getElementsByTagName('a');
avon_rep_container_id = doc.getElementById('avon_rep_container');
docBodyFirstChild = doc.body.firstChild;
documentTableWrapper = doc.getElementsByClassName('marginfix')[0];
avon_rep_container.appendChild(documentTableWrapper);
doc.body.appendChild(avon_rep_container);
full_width_container_1.removeChild(full_width_container_1.getElementsByTagName('table')[0]);
full_width_img_class_el.removeAttribute('style');
} else {
avon_rep_container_links = doc.getElementById('avon_rep_container').getElementsByTagName('a');
}
avon_rep_container_images = avon_rep_container.getElementsByTagName('img');
for (var i = 0; i < avon_rep_container_images.length; i++) {
var images = avon_rep_container_images[i];
images.src = '/dam/avon-us/landing-pages/rep-news/' + images.src.split('/').pop();
if (avon_rep_container_images[i].width == "538") {
avon_rep_container_images[i].style.width = "538px";
}
if (avon_rep_container_images[i].width == "258") {
avon_rep_container_images[i].style.width = "258px";
}
avon_rep_container_images[i].style.width = 'inherit';
avon_rep_container_images[i].style.margin = 'auto';
}
//for (var i = 0, len = arguments.length; i < len; i++) { // Using a for loop to allow unlimited arguments to be passed in
//instead collect all necessary urls
url = getURL(arguments); //[i]); // We are calling the publicApi.getURL() method and passing the looped argument from above
for (var j = 0, jlen = avon_rep_container_links.length; j < jlen; j++) { // This loop goes over the whole documents links...
link = avon_rep_container_links[j];
var domain = link.href.match(/(https?:\/\/.+?)\//)[1];
if ((url.indexOf(domain) !== -1) && (!link.href.match(/\.(pdf)/gi))) { // //...and we are checking each argument passed in to see if it matches the object value stored in the getURL function e.g. like a switch statement..
parser = document.createElement('a'); //...if so we are essentially adding a blank tag to all the documents in the document
parser.href = link.href;
link.setAttribute('target', '_self');
newPathName = parser.pathname;
console.log(domain);
if (newPathName.search(/Executive|District|Division|National/) != -1) { // Added check for these strings for SMO page
newPathName = newPathName.split('/').pop();
newstr = newPathName;
} else {
newstr = newPathName;
}
link.href = newstr;
} else {
link.setAttribute('target', '_blank');
}
}
//}
}
このエラーの意味を、私のモジュールとの関連で説明できますか?
ありがとうございます。
更新情報
ここでエラーが発生しています。
var domain=link.href.match(/(https?:\/\/.+?)\//)[1];
解決方法は?
String#match
はどちらかを返します。
null
(マッチしない) あるいはマッチしたものを含む配列です。
var domain = link.href.match(/(https?:\/\/.+?)\//)[1];
// ^^^^^
チェックによる回避策
var domain = link.href.match(/(https?:\/\/.+?)\//);
if (domain) {
// do something with domain[1]
}
関連
-
[解決済み】未定義のプロパティ 'bind' を読み込めない。React.js【重複あり
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み] JavaScript でオブジェクトが特定のプロパティを持つかどうかを確認するにはどうすればよいですか?
-
[解決済み] JavaScriptに「NULL合体」演算子はありますか?
-
[解決済み] JavaScriptのnullとundefinedの違いは何ですか?
-
[解決済み] JavaScriptはオブジェクトのプロパティの順序を保証するか?
-
[解決済み] React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
-
[解決済み】JavaScriptの関数名を文字列で指定して実行する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Uncaught ReferenceError: angular is not defined - AngularJSが動作しない。
-
[解決済み】SecurityError: オリジンを持つフレームがクロスオリジンフレームにアクセスするのをブロックした
-
[解決済み】Javascriptのコールバック関数がFirefoxで「Callback is not a function」というエラーを投げる
-
[解決済み] テスト
-
[解決済み】未定義のプロパティ 'bind' を読み込めない。React.js【重複あり
-
[解決済み】JavaScript ランタイムエラー:'$'が未定義です。
-
[解決済み】DOMException: サポートされているソースが見つからなかったため、読み込みに失敗しました。
-
[解決済み】リソースはドキュメントと解釈されるが、MIMEタイプはapplication/zipで転送される
-
[解決済み】未定義のプロパティ 'forEach' を読み取ることができない
-
[解決済み】module.exports "モジュールが定義されていません"