InternetExplorerのローカルファイルへのリンク読み込みの件でハマった件
前提&症状
インターネットからHTMLファイルとその周辺一式をZIPでファイルをダウンロードして、HTML/JavaScriptなどを編集していた。
ChromeやFirefoxでは問題なかったのだが、IEでチェックしようとしたら編集したファイルだけが動作しない。
編集したJavaScriptは読み込みが拒否される様で「そんな関数はない」とエラーが出るし、HTMLにリンクしようとしたらリンクを拒否される。そもそもそこまで気づいたのはframeのsrc先に指定しても読み込まなくて真っ白だったからなんだけど。
やっかいだったのが、直接開けば開けるのだがリンクが効かないだけという件。
ファイルの権限?プロパティ?
ということで、Windowsのファイル権限を調べてみた。デジタルアドバンテージの打越さん、ありがとうございます!(お知り合いでもないけど)
- 有効なファイル・アクセス権を調査する − @IT
- Tech TIPS:icaclsコマンドでファイルのアクセス制御リストACLを保存/復元する - @IT
- Tech TIPS:Windowsのエクスプローラーで表示される属性情報文字の意味は? - @IT
全然関係なかった。
原因はこれ。
読み出しもとのファイルにこの制限がかかっている場合、このファイルからリンクしているものはこの制限が罹っているものとみなされるようだ。
ただし、同じく制限が掛かっているファイルであれば、リンクは有効なものとされるが、制限が外れたものにはリンクは無効となるらしい。で、ファイルを編集することによりこの制限が自動的に外れるので編集したファイルはリンクできなくなってしまったのだ。
なので、大本のindex.htmlの解除を外してやることで終了。
だと思うけど、とりあえず複数で一括解除する方法もあるみたいなのでそちらも。
複数のファイルをまとめて「ブロックの解除」をする方法 - Windows - Project Group
ダウンロードリンクが切れているのでこちらから
https://technet.microsoft.com/ja-jp/sysinternals/streams.aspxtitle]
使い方は簡単で、当該ディレクトリにcdしてから
streams -d -s .