javascript - 与 HTML 集成后,JQuery 代码未执行
问题描述
我正在自动化一个过程,其中我必须登录网站并仅从不同类型的文件中下载 CSV 文件。
我的 jQuery 代码在控制台中执行,但在与 HTML 集成后没有执行。请在下面找到 jQuery 代码:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(window).on("load", function() {
$('.ibody tr').each(function(a, b) {
var count = 0;
var name = $('.cl', b).text();
if (name.indexOf(".CSV") !== -1 && name.indexOf("TAS") !== -1) {
var d = a - 9;
var hiddenIFrameID = 'hiddenDownloader' + count++;
var iframe = window.createElement('iframe');
iframe.id = hiddenIFrameID;
iframe.style.display = 'none';
window.body.appendChild(iframe);
iframe.src = "https://www.shipper-ml.com/viewReports.do?ctrl=reportListForDownload&action=DownloadReport¶m=" + d;
}
});
});
</script>
</head>
<body></body>
</html>
解决方案
编辑:确实,我对此很不满意。没有仔细阅读你的代码。
出于历史目的将其留在这里...
我在这里的假设可能完全偏离基础,如果是这种情况,请提前道歉。就是说,看起来您确实正在尝试在 IFrame 中加载页面并在 IFrame 外部使用 jQuery 从 IFrame 内部读取数据。
长话短说:您不能使用 jQuery(或任何 javascript,或者,如果浏览器正常工作,则可以使用任何东西)从 IFrame 外部操作或读取 IFrame 内的内容,如果该 IFrame 具有一个 src 标签。
您只能从自己从头开始构建的 iframe 中操作/读取。这是设计使然,并且出于重要的安全原因。如果您想使用 IFrame 显示页面,您将受到严格限制,只能按原样向用户显示页面。
如果我的假设是正确的,您需要:
- 将您的 JavaScript 嵌入(很好地)到您现在在 IFrame 中加载的页面中,或者
- 使用 AJAX 调用将该页面的内容放入当前页面的内存上下文中。如果你真的想使用 jQuery 来找到你想要的所有元素,这可能意味着跳过一些障碍。
- ...或者,您可以创建一个空的 IFrame,将您从 AJAX 调用中获得的内容与您的 Javascript 一起放入该 IFrame 中,然后让它工作。也许。不确定这个。
推荐阅读
- c++ - Cannot Obtain Similar DL Prediction Result in Pytorch C++ API Compared to Python
- eclipse - 如何解决 jubula autagent“autagent 意外退出”的 mac'os 问题?
- html - 实现实时背景
- api - Twitter API 标准搜索:我可以获得隐藏的回复吗?
- python - 在 Docker 中的 Ubuntu 上使用 azure.storage.blob.BlockBlobService 运行 python 脚本时没有名为“_cffi_backend”的模块
- sql-server - How to get count of number of days left in month from given date
- git - WebStorm - how change CRLF line endings into LF
- c++ - 从二进制文件中保存的 4 字节双精度读取 8 字节双精度
- android - 插页式广告 kotlin
- css - 我怎样才能实现这种响应行为