2012-03-30 1 views
0

に動作しないjqueryのを使用してのiframeの高さ:変更私は何をしたいかIE

私は、クロスドメインを介してPHPページから番号を選択したい、その後、jqueryの使用と、この上の高さiframe。例えば、出力のpage.php:195

は、これは私が何をやったかである:

$(document).ready(function() { 
      $.get("http://domain.com/page.php", function(data){ 
       $('#Myiframe').attr("height", data + "px"); 
      }); 
     }); 

そして、これはクロム、FirefoxとSafariで素晴らしい作品ではなく、(私はあなたがそれを推測したと思います)をIE 7/8に入れてください(9はありません)。クロスドメインプロトコルに関することはありますか?私はこれを私のPHPページで使っています:

header("Access-Control-Allow-Origin: *"); 
    header("Access-Control-Allow-Headers: x-requested-with"); 

誰もがなぜIEで動作しないのか知っていますか?

+1

のようなものを返します今回はIEのXDomainRequest wasnで、1年前に同じ問題を持っていましたjQueryでサポートされていない、多分まだサポートされていない(あなたに伝えることはできません)http://stackoverflow.com/questions/6318996/jquery-getjson-not-working-properly-in-ie8-with-gdata-json- c-why/6320496#6320496。しかし、最後のコメント(1ヶ月前)に関連して、私はそれがまだないと思う。 –

答えて

1

dataに値が設定されているかどうか、またはコンソールにドメイン間エラーがないかどうかを確認してください。

すべてが偉大になる場合は、使用します。

$('#MyIframe').css('height', data + 'px'); 
0

をあまりエレガントが、より頑丈なソリューションは、すべてのXMLHttpRequestを使用しないようにJSONPを使用することです。

API呼び出しがnum_votes(id)のような関数であるとすると、<script src="http://example.com/jsonp.php?m=num_votes&id=123"></script>のようなタグを挿入することで呼び出します。

このスクリプトの本文は、選択した関数を呼び出します。あなたはグローバルコールバック関数を使用する必要があるだろうとして、あなたはコールバックレジストリを設定する必要がありますので、あなたのJSONP APIはmyCallbacks[$ID]({votes: 1234});

<script> 
    my_callbacks={}; 
    on_ready(
    qid = 'q'+Math.floor(Math.random()*(1<<16)); 
    tag = create_element('script') 
    tag.src = api_url + 'jsonp=my_callbacks.'+qid; 
    my_callbacks[qid] = function(o) { alert('votes: ' + o.votes); }; 
    body.append(tag); 
); 
</script> 
関連する問題