簡體   English   中英

通過javascript發送信息到動態創建的html頁面

[英]Send info via javascript to dynamically created html page

您好,非常聰明的人,請問您需要幫助嗎?

我正在使用Articulate Storyline創建一個電子學習課程,需要捕獲用戶輸入的信息,並將其從該課程發送到他們可以打印的html頁面。

我已經找到了如何從課程中獲取信息的方法-但是我遇到了URL長度問題(或者至少我認為這是問題所在!)

這是我正在使用的javascript:

var player = window.top.GetPlayer();

var header = "Title~~"
var args =(
"Question 1:~~" + 
player.GetVar("Q1") +
"~~Question 2:~~" + 
player.GetVar("Q2") +
"~~Question 3:~~" + 
player.GetVar("Q3") +
"~~Question 4:~~" + 
player.GetVar("Q4") +
"~~Question 5:~~" + 
player.GetVar("Q5") +
"~~Question 6:~~" + 
player.GetVar("Q6") +
"~~Question 7:~~" + 
player.GetVar("Q7") +
"~~Question 8:~~" + 
player.GetVar("Q8") +
"~~Question 9:~~" + 
player.GetVar("Q9")
)

var url = ("print.html?=" + header + args);

window.top.open(url,"_blank","width=800,height=600,menubar=no");

只要我輸入簡短的答案,它就可以正常工作-但是,如果我嘗試為每個問題輸入1000個以上的字符,它將中斷並且什么也不會發生。

關於解決此問題的不同方法的想法?

謝謝你的好人。

提交大於K的數據時,必須使用POST而不是GET, 例如,提交一個具有METHOD =“ POST”而不是window.open 的表單 這意味着您需要將print.html更改為服務器進程,而不僅僅是html,因為您無法發布到.html頁面

但是,在查看了特定問題之后,您可以將代碼更改為此:

window.open("print.html","_blank","width=800,height=600,menubar=no");

並在print.html中進行更改

var url = window.location.href.split('?=');
var urlData = url[1];
var printVars = urlData.split('~~');

var player = opener.top.GetPlayer(); 

var printVars = ["Title"];
for (var i=1;i<=9;i++) {
  printVars.push("Question "+i+":")
  printVars.push(player.GetVar("Q"+i));
}

暫無
暫無

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

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