簡體   English   中英

將JavaScript變量發送到框架中

[英]Sending javascript variables into a frame

我正在嘗試將通過URL發送的一些動態參數組合到框架中,但是沒有任何效果。 在標簽的內部,外部,之前,之后進行了嘗試...有人可以對此進行說明嗎?

頂部框架上的URL是http://www.someurl.com/someparameters.html?country=EN_US 第一個腳本將獲得語言(EN)和市場(US)。 然后,用另一個頁面和我們的目標頁面構建框架集,該頁面應通過鏈接“ http://www.someurl.com/somefolders?LANGUAGE=EN&MARKET=US&somefixedparameters=123 ”進行調用

這是無效的框架集的源代碼。

<!DOCTYPE html>
<html>
<script type="text/javascript"><!--
var url = window.location.href;
var language = url.substr(url.indexOf("country=") + 8,2);
var market = url.substr(url.indexOf("country=") + 11,2);
}
</script>
<frameset rows="36px,*" frameborder="0">
<frame id="main" src="header_cgh.html?country=BR_OP" noresize="noresize" scrolling="no" border="1" bordercolor=white>
<frame id="flow" src="">
</frameset>
<script type="text/javascript"><!--
document.getElementById("flow").src = "http://www.someurl.com/somefolders?LANGUAGE=" + language + "&MARKET=" + market + "&somefixedparameters=123";
</script>
</html>

謝謝你的幫助!

更新 :打開Chrome的Javascript控制台並插入命令后:

document.getElementById("flow").src = "http://www.someurl.com/somefolders?LANGUAGE=" + language + "&MARKET=" + market + "&somefixedparameters=123"

它返回了預期的結果。 但它不會自行發生。

將腳本更改為此:

window.onload = function() {
    var url = window.location.href;
    var language = url.substr(url.indexOf("country=") + 8,2);
    var market = url.substr(url.indexOf("country=") + 11,2);
    document.getElementById("flow").src = "/somefolders?language=" + language + "&market=" + market;
}

並把它放在一個script標簽在你的head

另外,請注意:如果有人請求主框架集頁面時沒有查詢字符串,或者那里沒有country參數,則indexOf返回-1,結果您的languagemarket變量將indexOf毫無意義。 您將想出一種更強大的方式來獲取該信息。

這是使用postMessage的示例。 看看這是否滿足您的需求:

<iframe src="http://a.JavaScript.info/files/tutorial/window/receive.html" id="iframe" style="height:60px"></iframe>

<form name="form">
  <input type="text" name="msg" value="Your message"/>
  <input type="submit"/>
</form>

<script>

  var win = document.getElementById("iframe").contentWindow

  document.forms.form.onsubmit = function() {
    win.postMessage(
      this.elements.msg.value,
      "http://a.JavaScript.info" 
    )
    return false
  }

</script>

來自http://javascript.info/tutorial/cross-window-messaging-with-postmessage

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM