電子書籍の厳選無料作品が豊富!

以下に、1、2と二つのHTMがあり、1をベースに、下記の改造をしたいと思います。

(1) 1.htmの小窓を、IEでしか動かないWebページダイアログ(showModelessDialog)でなく、
2.htm にあるような、win.openに変えたいのですが、移植の仕方がわかりません。1.htmをどう書き換えたらいいですか。

(2) 1.htmにあるmyimg.gifの幅(width)を取得して、dialogWidthにセットしたいのですが、その書き方をご教示ください。
高さ(height)は、2.htmにある「getScreenHEIGHT()」をそのまんま流用します。

(3) 1.htm に「href="#"」ありますが、「href="javascript:function voi(){};voi()"」などと記述したほうがいいのでしょうか。
「voi(){};voi()」なんてどこからコピペしてきたキーワードなのか、自分でもわからないのですが。




1.htm ------------------------

<html>
<head>
<script>
function openKomado(url,winTitle) {
var Win=showModelessDialog(url,window, 'center:yes;scroll:no;status:no;help:no;edge:raised;dialogWidth:100px;dialogHeight:100px',winTitle);
with (Win.document) {
write('<html><head><title>' + winTitle + '</title></head><body>');
write('<img src="' + url + '" onclick="window.close();" alt="閉じる">');
close();
}
}
</script>
</head>
<body>
<a href="#" onClick="openKomado('myimg.gif','題名')">開く</a>
</body>
</html>



2.htm ------------------------

<html>
<head>
<script>
function openNewWin(url, name){
window.open(url, name, 'scrollbars=yes,top=0,left='+(getScreenWIDTH()-680)+',width='+680+',height='+(getScreenHEIGHT()+20));
}
function getScreenHEIGHT(){
if(!!window.screen){
return screen.height-80;
}else{
return null;
}
}
function getScreenWIDTH(){
if(!!window.screen){
return screen.width-12;
}else{
return null;
}
}
</script>
</head>
<body>
<a href="#" target="new" onClick="openNewWin('./sample.htm','a'); return false;">開く</a>
</body>
</html>

A 回答 (2件)

function openNewWin(url,winTitle){


//画像オブジェクト作成
var img = new Image();
img.src = url;
//画像のロード後に窓を開く
img.onload=function(){
//画像の横幅これを680の代わりに入れる
var width = this.width;
//画像の横幅でabout:blankを開く
var Win=window.open("", "new", 'scrollbars=yes,top=0,left='+(getScreenWIDTH()-width)+',width='+width+',height='+(getScreenHEIGHT()+20));
//Winのdocumentにタイトルをつける
Win.document.title = winTitle;
Win.document.body.innerHTML = '<img src="' + this.src + '" onclick="window.close();" alt="閉じる">';
}
}

これで動くかな?
動作確認をしていませんので間違っていたらごめんなさい。
でも、やることはこれと大きく変わることはないと思います。
    • good
    • 0
この回答へのお礼

kk273g906さん、御礼遅くなって大変失礼いたしました。

ご提示いただいたスクリプトの方、早速導入させていただきました。
快調に動作しております。

思い通りのコンテンツにできました。

ご回答本当にありがとうございました。

お礼日時:2007/07/17 11:03

<html>


<head>
<script>
function openNewWin(url,winTitle){
var Win=window.open(url, "new", 'scrollbars=yes,top=0,left='+(getScreenWIDTH()-680)+',width='+680+',height='+(getScreenHEIGHT()+20));
Win.document.title = winTitle;
}
function getScreenHEIGHT(){
if(!!window.screen){
return screen.height-80;
}else{
return null;
}
}
function getScreenWIDTH(){
if(!!window.screen){
return screen.width-12;
}else{
return null;
}
}
</script>
</head>
<body>
<a href="#" onClick="openKomado('myimg.gif','題名')">開く</a>
</body>
</html>
    • good
    • 0
この回答へのお礼

kk273g906さん、早速のご回答ありがとうございました。感謝感激です。
早速ためさせていただきました。

さて、元質問の仕方が大変悪く、申し訳ございません。2点ほど補足なのですが、

(1) 以下のように、HTMLを書き出して欲しく、

with (Win.document) {
write('<html><head><title>' + winTitle + '</title></head><body>');
write('<img src="' + url + '" onclick="window.close();" alt="閉じる">');


(2) サブウィンドウの幅は、'myimg.gif'のwidthを取得してウィンドウ幅に
セットして欲しいのですが可能でしょうか。


もしよろしければ、ご教示いただけますと幸いです、
以上、まずは御礼申し上げます。

お礼日時:2007/07/13 09:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!