これはナレッジとしては活用の機会が少なそうだけど、一応記録。

ローカル環境でJavaScriptの開発をしていて、ふと
「window.openで別のローカルファイルを開いて、その中のスクリプトを実行」
ってなことをやりたくなった。
そして色々やってみたものの、結論は「出来ない」。

—–【理由】—–
まず、window.open()でURLを開いてopen元からopen先の要素をいじりたい場合は、open元とopen先のドメインが同じでなければならない。
しかし、file://~ でファイルを開いた時は、ドメインは空値になる。
空値同士は同一ドメインとは見なされないようで、open元とopen先のスクリプトを実行しようとするとセキュリティエラーに。
 ↑よくよく考えると当たり前ですな

じゃあdocument.domain = ‘hoge’みたいにドメインに同じ値を設定してあげりゃいいんじゃないかと試してみたところ、これもエラー。
document.domainは自由に設定可能なわけじゃなく、結構厳密なルールがあるようだ。
 ↑これもよくよく考えると当たり前ですな
(このへんは詳しく解説しているサイトがあったので、google先生に聞けばすぐに出てくる。)
——————

どうしても実現したいならば、WEBサーバ立ててhostsでドメインを振り、その上でスクリプト動かさないとアウト。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Name *
Email *
Website

*