2016-07-01 29 views
0

根據PHP if語句的結果,我想更改iframe的源屬性。如何從使用javascript的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語句至少是可行的,因爲我已經成功地測試了JS警報執行有效的JavaScript。我在網上看到的所有內容似乎都表明,對於「document.getElem ...」這一行所討論的語法是有效的。任何幫助,將不勝感激。

+0

PHP是在服務器上執行,所有的JS代碼運行之前好了,所以加入JS代碼,通過PHP的頁面是有點多餘。只需在PHP –

回答

1

您在創建要修改的元素的HTML之前有Javascript,因此getElementById()未找到元素。移動將JS添加到HTML末尾的PHP代碼,以便找到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>"; 
    } 
?> 
+0

中直接設置iframe src即可解決我的問題。我錯過了「window.addEventListener ...」這一行 – derks