2014-12-29 288 views
0

如果我要求一些非常基本的東西,請不用擔心,因爲我對編碼知之甚少。我有一個股票圖表應用程序,它有一個內置的網頁瀏覽器。我配置這個瀏覽器加載一個html頁面,我編碼如下,像這樣mypage.html?symbol = xzy,我在這裏要做的是捕獲提交的html變量'symbol',並使用它的值作爲的url字符串來加載另一個第三方網頁的一部分。我無法弄清楚我的JavaScript代碼沒有設置'src'屬性的值。任何幫助最受讚賞。如何更改iframe src

<html> 
<header> 
<script> 
document.getElementById('iframe').src = "http://www.asx.com.au/asx/markets/dividends.do?by=asxCodes&asxCodes="+symbol+"&view=all#dividends"; 
</script> 
</header> 
<body> 
<div id="dividends"></div> 
<iframe id="iframe" src="" style="display:hidden;margin-left: -140px; margin-top: -33px" scrolling="no" frameborder="no" width="398" height="265"></iframe> 
</body> 
</html> 
+1

當JavaScript代碼執行時,iframe不存在。把它放在iframe之後,或者看看如何等待DOM準備就緒。 – JAL

回答

0

幾件事情:1)首先執行onLoad函數 - 這樣你就知道腳本將運行並在瀏覽器呈現之後,而不是在之前將src屬性彈出。

2)使用函數來獲取url值。

<html> 
<header> 
<script> 
<!-- source: http://javascriptproductivity.blogspot.com/2013/02/get-url-variables-with-javascript.html --> 
function GetUrlValue(VarSearch){ 
    var SearchString = window.location.search.substring(1); 
    var VariableArray = SearchString.split('&'); 
    for(var i = 0; i < VariableArray.length; i++){ 
     var KeyValuePair = VariableArray[i].split('='); 
     if(KeyValuePair[0] == VarSearch){ 
     return KeyValuePair[1]; 
     } 
    } 
} 

function SetContent(){ 
    var symbol = GetUrlValue('symbol'); 
document.getElementById('iframe').src = "http://www.asx.com.au/asx/markets/dividends.do?by=asxCodes&asxCodes="+symbol+"&view=all#dividends"; 
} 

</script> 
</header> 
<body onLoad="SetContent();"> 
<div id="dividends"></div> 
<iframe id="iframe" src="" style="display:hidden;margin-left: -140px; margin-top: -33px" scrolling="no" frameborder="no" width="398" height="265"></iframe> 
</body> 
</html> 
+0

非常感謝GumbyG。精美的工作! –

+0

也想感謝所有試圖提供幫助的人。 –

1

儘量DOM

<body> 
<div id="dividends"></div> 
<iframe id="iframe" src="" style="display:hidden;margin-left: -140px; margin-top: -33px" scrolling="no" frameborder="no" width="398" height="265"></iframe> 
</body> 

<script> 
document.getElementById('iframe').src = "http://www.asx.com.au/asx/markets/dividends.do?by=asxCodes&asxCodes="+symbol+"&view=all#dividends"; 
</script> 
+0

我按照建議嘗試,並使用url mypage.html?symbol = mms加載此頁面,但頁面仍然爲空。 mms是一種有效的股票代碼,應該有內容出現。 –

+0

@TonyLi你喜歡這樣嗎? http://jsfiddle.net/uzn9pkak/工作正常。也許你可以使用螢火蟲結帳發生了什麼錯誤:) – Cattla

0

移動的JavaScript移動script HTML後的頁面底部的iframe後。您正在嘗試在創建元素之前更改元素。最初還要執行src =「about:blank」,以便驗證。

+0

卡特拉明白了。錯過了9秒。 :) –