$.ajax()
で取得したHTMLから、<script>
タグ内の文字を取得し、それをJavaScriptコードとして実行することにより、変数tama
の内容を取得できます。
JavaScript
1var executeOtherPageScript = function(){
2
3 //変数tamaがあるページを読み込む
4 $.ajax({
5 type: "GET",
6 url: "hoge.html", //変数tamaがあるページのURL
7 dataType: "html"
8 }).done(function(htmlText){
9
10 //DOMパーサーの準備
11 if(!window.DOMParser) {
12 console.warn("DOMParserを使用できません。");
13 return;
14 }
15 var domParser = new DOMParser();
16
17 //取得したHTMLをDOM要素に変換する
18 var domTree = domParser.parseFromString(htmlText, "text/html");
19
20 //<script>タグ内のコードを文字列として取得する
21 var scriptCode = $(domTree).find("script").text();
22
23 //文字列をJavaScriptコードとして実行する
24 eval(scriptCode)
25
26 console.log(tama) //"cat"
27 });
28
29};
30
31
32$(function(){
33 executeOtherPageScript();
34});
ただし、この方法は以下の理由から、多用は避けるべきです。
- コードの可読性が下がる
eval()
を使用するので、予想外の副作用が起きる可能性がある
基本的には、変数tama
を外部JavaScriptファイルに定義し、そのJavaScriptファイルを、変数tama
を用いるHTML/JavaScriptファイルで読み込むのが、適切な解決方法だと思います。