我正在自动化一个过程,其中我必须登录到website并仅从不同类型的文件中下载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>
答案 0 :(得分:0)
编辑:的确,我与此背道而驰。没有仔细阅读您的代码。
出于历史目的将其留在这里...
根据我的假设,我可能会完全落伍,如果是这种情况,请事先道歉。就是说,您似乎真的想在IFrame中加载页面并在IFrame外部使用jQuery从IFrame内部读取数据。
长话短说:您不能使用jQuery(或任何javascript,或者,如果浏览器能够正常工作,甚至可以进行任何操作)来从iframe外部操纵或读取iframe内部的内容,< strong>如果该IFrame具有src标签。
您只能自己操作/读取从头开始构建的iframe。这是设计使然,并且出于重要的安全原因。如果要使用IFrame显示页面,则严格限制只能按原样向用户显示页面。
如果我的假设是正确的,则您需要:
答案 1 :(得分:-1)
可以请您试试吗?将您的window.createElement替换为document.createElement。
$(document).ready(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 = document.createElement('iframe');
iframe.id = hiddenIFrameID;
iframe.style.display = 'none';
document.body.appendChild(iframe);
iframe.src = "https://www.shipper-ml.com/viewReports.do?ctrl=reportListForDownload&action=DownloadReport¶m=" + d;
}
});
})