【问题标题】:How do I change the source of an iframe from a PHP if statement using javascript如何使用 javascript 从 PHP if 语句更改 iframe 的源
【发布时间】:2016-07-01 20:14:57
【问题描述】:

根据 PHP if 语句的结果,我想更改 iframe 的源属性。

我有以下:

<?PHP
     if {...}
     else {
          echo "<script>";
          echo "document.getElementById('video-embed').setAttribute('src', 'https://www.youtube.com/embed/dQw4w9WgXcQ');";
          echo "</script>";
     }
?>

<!DOCTYPE html>
     <body>
        <div class="wrapper">
          <iframe id="video-embed" src="...some other youtube video"></iframe>
        </div>
     </body>
</html>

我知道从 if 语句执行有效的 JavaScript 至少是可行的,因为我已经成功地测试了 JS 警报。我在网上看到的一切似乎都表明“document.getElem ...”行的语法是有效的。任何帮助将不胜感激。

【问题讨论】:

  • PHP 在服务器上执行,远远早于任何 JS 代码运行,因此通过 PHP 将 JS 代码添加到页面中有点多余。直接在PHP中设置iframe src即可

标签: javascript php jquery css iframe


【解决方案1】:

在创建它试图修改的元素的 HTML 之前有 Javascript,所以 getElementById() 没有找到该元素。将添加 JS 的 PHP 代码移动到 HTML 的末尾,以便找到 ID。或者将 Javascript 放在窗口的 load 处理程序中。

<?PHP
     if {...}
     else {
          echo "<script>";
          echo "window.addEventListener('load', function() {";
          echo "document.getElementById('video-embed').setAttribute('src', 'https://www.youtube.com/embed/dQw4w9WgXcQ');";
          echo "});";
          echo "</script>";
     }
?>

【讨论】:

  • 这解决了我的问题。我错过了“window.addEventListener ...”行
猜你喜欢
  • 2019-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多