親ウィンドウから子ウィンドウの背景を変えたい。



0   名前: みゅき : 2007/04/21(土) 15:54  ID:T3rY5qnC sub-Ds
はじめましてです。

今素材屋さんを作っていて、背景サンプルを別窓で表示させたいと考えています。
今は別窓を表示できています。
一瞬だけ背景が変わるのですが、ローカルだとコンテンツを許可すると背景が白くなってしまい、ウェブにあげると一瞬で背景が消えてしまいます。

ソースは簡単ですがこんな感じです。

function Sample(images){
if (check <> 0){
SamplePage = window.open("sample.html","Sample","width=200,height=350,scrollbars=1,left=50,top=50");
check = 0;
}
SamplePage.document.body.background = images;
}


<a href="javascript:Sample('画像URL');">画像</a>

一度開いたら次の画像をクリックしても何個もウィンドウが開かないようcheckでウィンドウがオープンされているか確認しています。

なにがいけなくて表示されないのかわかりません。
分かる方ご指導ください。
よろしくおねがいします。



1   名前: 匿名 : 2007/04/21(土) 15:54  ID:iOV8.0aU sub-Cz
BASIC か何かの経験者でしょうか?
<a href="画像URL" onclick="return Sample (this); ">画像</a>
var SamplePage;

function Sample (imgURI) {
    if (! SamplePage) open ('sample.html' /*, ....*/);
    SamplePage.document.body.style.backgroundImage = 'url("' + imgURI + '")';
    return false;
}

2   名前: みゅき : 2007/04/21(土) 15:54  ID:T3rY5qnC sub-Ds
お返事ありがとうございます!

BASICはやっていませんが、4月から社会人になりまして、会社でDelphiをやっています。
全然できませんが…。

var SamplePage;

function Sample (imgURI) {
if (! SamplePage)window.open ("sample.html","Sample","width=200,height=350,scrollbars=1,left=50,top=50");
SamplePage.document.body.style.backgroundImage = 'url("' + imgURI + '")';
return false;
}

<a href="画像URL" onclick="return Sample (this); ">画像</a>

でやってみましたが、親ページが普通に画像にリンクしてしまいます。
もしかしてわたし何か基本的なことができたいないのでしょうか…。

3   名前: みゅき : 2007/04/21(土) 15:54  ID:T3rY5qnC sub-Ds
さっき教えていただいたソースでウィンドウを開くことができました。
スミマセン。

しかし最初と同様、やはりローカルだとコンテンツを許可すると背景が白くなってしまい、ウェブにあげると一瞬で背景が消えてしまいます。

何が原因なのでしょうか……。

子ウィンドウでも親ウィンドウからURLを摂取するようなコードが必要なのでしょうか…。

4   名前: 匿名 : 2007/04/21(土) 15:54  ID:KZQyw1Ds sub-Cz
ごめんなさいごめんなさい、こっちのミス。

いろいろ考えたけど、キャッシュによる不動作を避けるためにも、URI クエリを渡すのが無難な気が。
var SamplePage;

function Sample (imgURI) {
    if (! SamplePage || SamplePage.closed) {
        open ('' /*, ....*/);
    }
    SamplePage.location.href = 'sample.html?' + imgURI;
    return false;
}

sample.html:
onload = function () {
    document.body.style.backgroundImage = 'url("' + location.search.substring (1) + '")';
};

なお、IE を使っているのなら、エラー発生時にステータスバーの左下に警告マークが出るから、それをダブルクリックしる。

5   名前: みゅき : 2007/04/21(土) 15:54  ID:T3rY5qnC sub-Ds

すごい!!できました!!!

ありがとうございます!!
1週間くらい調べてみたけどわからなかったのに・・・。

>いろいろ考えたけど
わたしのために色々考えてくれたんですね!
本当にありがとうございました!!

一覧へ戻る