新しいウィンドウ (またはタブ) を開き、そこに html コードを入れたいです。どうやってやるの?
何かのようなもの:
window.open("","foo");
foo.body="alert('HI')';";
新しいウィンドウ (またはタブ) を開き、そこに html コードを入れたいです。どうやってやるの?
何かのようなもの:
window.open("","foo");
foo.body="alert('HI')';";
古き良きDOM0:
var win = window.open("javascript:void(0)");
win.document.write("<html><body>text</body></html>");
win.document.close();
function openWindow()
{
NewWindow=window.open("", "awindow","width=300,height=300");
NewWindow.document.write('New content...');
}
HTML
<a href="javascript:openWindow()">Open</a>
window.open('foo.html', 'foo');
内部foo.html
には、希望するコードを入れることができます。例えば:
<html>
<head>
<title>This is Foo</title>
<script type="text/javascript">
alert('HI')';
</script>
</head>
</html>
新しく開いたウィンドウの内容に直接書き込むこともできます:
var win = window.open('', 'foo');
var doc = win.document;
doc.write('<html>');
doc.write('<head>');
doc.write('<title>This is foo</title>');
doc.write('<script type="text/javascript">alert("HI");</script>');
doc.write('</head>')
doc.write('<body>')
doc.write("</body>")
doc.write("</html>")
私の知る限り、親から子の関数を呼び出すことはできませんが、子から親関数を呼び出すことはできます
したがって、親ウィンドウのグローバル スコープで、目的の値を返す関数を定義します。
// Parent window
var getHTML = function(){
return "<span>foo</span>";
};
次に、子ウィンドウで呼び出します。
// Child window
window.onload = function(){
document.getElementById('foo').innerHTML = window.opener.getHTML();
};