无法以编程方式设置iframe网址

时间:2017-01-19 21:22:26

标签: javascript iframe

我有一个setIframe函数来动态设置iframe网址,但是当读回带有getIframe网址的网址为空时为什么?

的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);         

2 个答案:

答案 0 :(得分:2)

attr不是一个vanilla JS函数(虽然它是jQuery中的一个函数。)

您需要使用香草等价物:getAttributesetAttribute

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

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

答案 1 :(得分:2)

您在JavaScript中使用myIframe,但您的iframe ID实际上是MyIframe,因此我不确定您是如何设置的,但也许您对此感到困惑元素中定义的src。并使用.src代替.attr()

&#13;
&#13;
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"));
&#13;
<iframe id="MyIframe" src="http://gizmodo.com/">
</iframe>
&#13;
&#13;
&#13;