我正在尝试使用 jquery 来:
- 打开一个新窗口/选项卡(同一域,不同页面)
- 然后将文本添加到文本框 (
id = "BUpdates_SQL_Statement"
) - 然后单击此按钮:
<input type="submit" value="Apply Changes" name="BUpdates_Submit" id="BUpdates_Submit">
- 然后关闭窗口
这是起始页面中的 onclick 元素(我们将其称为 www.mydomain.com/firstpage):
<li id="MainNav_Update"><span class="MainMenuText" onclick="runUpdateWindow();">Update</span></li>
这是我要在新窗口中编辑的区域(我们将其称为 www.mydomain.com/secondpage)
<textarea id="BUpdates_SQL_Statement"></textarea>
<input type="submit" value="Apply Changes" id="BUpdates_Submit">
<a onclick="v$('BUpdates_Submit').click();return false;" href="javascript:void(0);"><span>Apply Changes</span></a>
旁注:v$('BUpdates_Submit').click();return false;"
用于另一个外部 js 文件,该文件与我在这里尝试执行的操作无关。
这是我的 jquery:
function runUpdateWindow() {
var updateWindow = window.open("www.mydomain.com/secondpage", "blank");
}
var updateSQL = 'UPDATE TABLE ...';
$(updateWindow).on("load", function (){
$("BUpdates_SQL_Statement", updateWindow.document).append(updateSQL);
$('BUpdates_Submit').trigger('click');
});
updateWindow.close();
www.mydomain.com/secondpage
正在新选项卡中打开,但 BUpdates_SQL_Statement
应该是:
<textarea id="BUpdates_SQL_Statement">
UPDATE TABLE...
</textarea>
但它仍然是空白的。
我真诚地感谢任何意见。提前致谢!
最佳答案
据我了解,您想要做的是自动填写和提交表单,并选择了一种看似相当简单的方式来执行此操作。不过,无论这是否有效,可能还有一种更简单的方法。
想想当您打开其他页面、填写表单并按提交时会发生什么。如果它是一个没有 JavaScript 干扰的普通 HTML 表单,您可能只会收到一个 POST
请求。如果我有这张表格,请说:
<form action="run-sql" method="post">
<textarea name="sql"></textarea>
<input type="submit" value="Run query">
</form>
当我使用一些 SQL 提交它时,浏览器会向 run-sql
发送一个 POST
请求,其中包含一个参数 sql
。从 JavaScript 中触发 POST
请求相对简单,至少与自动化另一个网页相比是这样。从 JavaScript 发出 HTTP 请求通常称为 AJAX,幸运的是,jQuery 通过 its $.post
function 使这一切变得简单。 .
那么如何使用它呢?在该特定示例中,它会像这样简单:
var mySQL = "select * from employees"; // e.g.
jQuery.post("run-sql", {sql: mySQL}, function() {
alert("Success!");
});
现在,有些表单并不像这样简单,但值得一试,看看您的表单是否如此简单。
关于javascript - jquery加载后在新窗口中按id附加innerHTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20930033/