私は HTML と JavaScript の初心者ですが、HTML ファイルからそこに設定されているものを抽出し、JavaScript を介して別の HTML ファイルに表示しようとしています。
これまでにテストした内容は次のとおりです。
テスト.html
<html>
<head>
<script language="javascript" type="text/javascript" src="asd.js"></script>
</head>
<body>
<form name="form1" action="next.html" method="get">
name:<input type ="text" id="name" name="n">
<input type="submit" value="next" >
<button type="button" id="print" onClick="testJS()"> Print </button>
</form>
</body>
</html>
次へ
<head>
<script language="javascript" type="text/javascript" src="asd.js"></script>
</head>
<body>
<form name="form1" action="next.html" method="get">
<table>
<tr>
<td id="here">test</td>
</tr>
</table>
</form>
</body>
</html>
asd.js
function testJS()
{
var b = document.getElementById('name').value
document.getElementById('here').innerHTML = b;
}
test.html
-> ads.js
(test.html から値を抽出し、next.html に設定します) ->next.html
ベストアンサー1
次のコードを試してください:
testing.html内
<script>
function testJS() {
var b = document.getElementById('name').value,
url = 'http://path_to_your_html_files/next.html?name=' + encodeURIComponent(b);
document.location.href = url;
}
</script>
そして next.html では:
<script>
window.onload = function () {
var url = document.location.href,
params = url.split('?')[1].split('&'),
data = {}, tmp;
for (var i = 0, l = params.length; i < l; i++) {
tmp = params[i].split('=');
data[tmp[0]] = tmp[1];
}
document.getElementById('here').innerHTML = data.name;
}
</script>
説明: JavaScript には、異なるページ間でデータを共有するための特別な機能はありません。ただし、URL パラメータ (私のコードではこのアプローチを使用しました)、Cookie、localStorage などを使用するなど、これを実現する代替方法がいくつかあります。
まず、testing.html で、URL に名前パラメータ (?name=...) を保存します。次に、next.html のスクリプトで URL を解析し、前のページからすべてのパラメータを取得します。
追伸:私は英語を母国語としないのですが、必要であれば私のメッセージを訂正していただけますか。