gpt4 book ai didi

javascript - 离线 Google Chrome 扩展程序/打包应用程序 : Trying to send form data from one local page to another

转载 作者:行者123 更新时间:2023-11-28 16:17:55 27 4
gpt4 key购买 nike

好的,我已经阅读了一些教程,以及一本关于 HTML5 的书,其中讨论了很多有关表单控件以及它们发生了多少变化的内容。因此,我尝试使用此示例代码来测试代码。我想要做的是将表单数据(特别是某人想要倒计时的事件名称的文本字段以及事件的日期和时间的日期时间控件)发送到另一个 HTML5 文件以获取 JavaScript要解析的文件。问题?数据未发送到指定为表单操作的文件!

以下是包含表单的 HTML 文件中的代码 (countdown_form.html):

<!DOCTYPE html>
<html>
<head>
<title>Collecting countdown data</title>
</head>
<body>
<form method="post" action="countdown.html">
<table border="1" cellpadding="5">
<tr>
<td>Name of event to count down to</td>
<td><input name="event" type="text"></td>
</tr>
<tr>
<td>Date of event to count down to</td>
<td><input name="date" type="datetime"></td>
</tr>
</table>
<input name="Submit" type="submit">
</form>
</body>
</html>

下面是我尝试将表单数据发送到的 HTML 文件中的代码 (countdown.html):

<!DOCTYPE html>
<html>
<head>
<title>
<script type="text/javascript">
document.write("Countdown to " + input.text);
</script>
</title>
</head>
<body>
<table border="1" cellpadding="5">
<tr>
<td>
<script type="text/javascript" language="JavaScript">
<!--
document.write("Time left until " + input.text);
//-->
</script>
</td>
</tr>
<tr>
<td>
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">
<!--

dateFuture = new Date(input.date);

function GetCount(){

dateNow = new Date(); //grab current date
amount = dateFuture.getTime() - dateNow.getTime(); //calc milliseconds between dates
delete dateNow;

// time is already past
if(amount < 0){
document.getElementById('countbox').innerHTML="Now!";
}
// date is still good
else{
days=0;hours=0;mins=0;secs=0;out="";

amount = Math.floor(amount/1000);//kill the "milliseconds" so just secs

days=Math.floor(amount/86400);//days
amount=amount%86400;

hours=Math.floor(amount/3600);//hours
amount=amount%3600;

mins=Math.floor(amount/60);//minutes
amount=amount%60;

secs=Math.floor(amount);//seconds

if(days != 0){out += days +" day"+((days!=1)?"s":"")+", ";}
if(days != 0 || hours != 0){out += hours +" hour"+((hours!=1)?"s":"")+", ";}
if(days != 0 || hours != 0 || mins != 0){out += mins +" minute"+((mins!=1)?"s":"")+", ";}
out += secs +" seconds";
document.getElementById('countbox').innerHTML=out;

setTimeout("GetCount()", 1000);
}
}

window.onload=function(){
GetCount();
}; //call when everything has loaded
//-->
</script>
<div id="countbox"></div>
</td>
</tr>
</table>
</body>
</html>

我想知道的是:

  1. 一个 HTML 文档将表单数据直接发送到另一个 HTML 文档是否合法,
  2. 如果合法,为什么操作文档中的 input.text 和 input.datetime JavaScript 变量不会解析来自 <input> 标记的数据?

另外,

  1. 在 <title> 标记内包含 JavaScript 代码是否合法?
  2. 如果合法,Google Chrome 浏览器为何不解析该代码?

如果这两件事都不合法,那么您将如何使用表单数据:

  1. 文档的标题。
  2. 作为 JavaScript 解析的数据?

最佳答案

如果你想这样做,我认为最好的选择是使用 method=get 而不是 method=post。这样目标页面中的 Javascript 将能够看到参数。 JS 无法看到 post 参数(您需要一个运行 PHP、ASP.NET 等的 Web 服务器来访问这些参数)。

明确回答您的问题:

  1. 发送是合法的,但浏览器看不到目标页面上的参数。
  2. 不,拥有 Javascript 是不合法的。但是,您可以使用 Javascript 设置标题: document.title = "Some text";
  3. 使用服务器端脚本语言,或者如果必须在客户端执行此操作,请在表单中使用 method="get",并使用 window.location.search 解析目标页面上的参数。

关于javascript - 离线 Google Chrome 扩展程序/打包应用程序 : Trying to send form data from one local page to another,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10809958/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com