0

これを使用して、document.domain から最上位のサブドメインを削除しようとしています (そして失敗しています):

document.domain.split(".").splice(1, length + 1).join(".")

ドメインsub2.sub1.example.comにいる間、スクリプトに入れてもコンソールに入れると、「sub1」を返し続けます。リンクされたjsファイルとコンソールの間で動作が異なるため、ちょっと途方に暮れています。

デバッグするために、各ステップをコンソールに書き込もうとしましたが、出力は次のとおりです。

console.log(document.domain); >> sub2.sub1.example.com
console.log(document.domain.split(".")); >> ["sub2", "sub1", "example", "com"]
console.log(document.domain.split(".").splice(1, length + 1)); >> ["sub1"]
console.log(document.domain.split(".").splice(1, length + 1).join(".")); >> sub1

しかし、クロム開発者コンソールでは次のようになります:

document.domain.split(".").splice(1, length + 1).join(".") >> "sub1.example.com"

誰でも私を正しい方向に向けることができますか、少なくとも実行方法によって異なる結果が得られる理由を教えてください。

4

1 に答える 1

1

より良いアプローチ:

var foo = 'sub2.sud1.domain.com';
foo.replace(/^[^\.]+\./,"");

あなたのコードの間違いは、長さが設定されていないことです。何かを見逃したと思います。

于 2013-04-25T00:29:28.123 に答える