2017-01-19 6 views
-1

iframeのURLを動的に設定するsetIframe関数がありますが、getIframeを使用してURLを読み取るときに空白になるのはなぜですか?iframe urlをプログラムで設定することはできません

のindex.html:

<iframe id="MyIframe" src="frame.html"> 
    </iframe> 

    <script> 
    function setIframe(iframeId, url){ 
     document.getElementById(iframeId).src = url; 
     } 

     function getIframe(iframeId){ 
     return document.getElementById(iframeId).src; 
     } 


     var url = "frame.html" + location.search; 
     alert(url); 
     setIframe('myIframe',url); 
     alert(getIframe("myIframe")); 
    </script> 

frame.html 警告(location.search)。 (それはjQueryの関数ですが。)

+0

を使用しますがgetIframeから何かを返していないとあなたができる場合はたぶん、あなたはjQueryのようなものを使用しなければならないsetIframe –

+0

には何も設定しません。彼らはすでに多くのブラウザでこの問題を解決しました。 .after( '#other'); ' –

+0

第三者の場合は、それを読むことはできませんが、あなたのコード返信しない – epascarello

答えて

2

は実際MyIframeあるので、私はあなたがそれを設定かどうかはわかりませんが、多分あなたは要素の定義されたSRCと混同しています。そして.src代わりの.attr()

function setIframe(iframeId, url){ 
 
    document.getElementById(iframeId).src = url; 
 
    } 
 

 
    function getIframe(iframeId){ 
 
    return document.getElementById(iframeId).src; 
 
    } 
 

 
    var url = "http://gizmodo.com/"; 
 
    setIframe('MyIframe',url); 
 
    alert(getIframe("MyIframe"));
<iframe id="MyIframe" src="http://gizmodo.com/"> 
 
</iframe>

+1

なぜ私の答えをdownvoted?それは実際問題です。 – Roljhon

+0

これはコメントではありません。答えには正しいコードが含まれています –

+0

これはいくつかの問題の1つですが、IDを修正することはそれを修正するつもりはありません。 – epascarello

2

attrはバニラJS機能ではありません

あなたはバニラ同等物を使用する必要があります:getAttributesetAttribute。あなたはJavaScriptでmyIframeが、あなたのiframeのIDを使用している

function setIframe(iframeId, url){ 
    document.getElementById(iframeId).setAttribute('src', url); 
} 

function getIframe(iframeId){ 
    return document.getElementById(iframeId).getAttribute('src'); 
} 
+0

私はそれがクロムで動作しないとテストしましたか? – user310291

関連する問題