如何使用 jquery .load 获取页面引用的 URL 并加载 div 中的内容

编程


我的 WordPress 博客上有一个下载页面。 在此页面上,我想从链接到下载页面的任何 URL 获取 id=”download” 的 HTML 元素。

请问我该如何做到这一点? 看看我下面的代码,但它不起作用

我尝试过的:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"> </script>

<script type="text/javascript">
var pagereferrer = Document.referrer;
var timeleft = 10;
var downloadTimer = setInterval(function(){
timeleft--;
document.getElementById("countdowntimer").textContent = timeleft;
if(timeleft <= 0)
clearInterval(downloadTimer);
},1000);

$( "#div1" ).load(pagereferrer #download);
</script>

<h2>
<span style="font-family: 'comic sans ms', sans-serif;">
Please wait ! Your download will begin in <span id="countdowntimer">10 </span> Seconds.......
</span>
</h2>

<div id="div1"> </div>

解决方案1

正如您的问题所描述的,您想要的东西是不可能的。

Document.referrer 只为您提供引导您到达此页面的页面的 URL。 该页面的 DOM 不再存在,因此您要从中查找值的字段也不再存在。

我知道从上一页获取值的唯一方法是该页面将您正在查找的值传递给服务器控制器,并且该控制器将这些值放入正在提供的新页面中。

解决方案2

假设引用者是某个来源上的页面,那么 load 方法应该有效:

JavaScript
var pageReferrer = document.referrer;
if (pageReferrer) {
    $("#div1").load(pageReferrer + " #download");
}

.load() | jQuery API 文档[^]

注意: 注意文档:

引用:

由于浏览器安全限制,大多数“Ajax”请求都会受到 同源政策[^]; 该请求无法成功从不同的域、子域、端口或协议检索数据。

另请注意,可能未设置引荐来源网址,或者可能不包含完整的 URL,具体取决于为引荐页面设置的引荐来源网址策略:
推荐人策略 – HTTP | MDN[^]

コメント

タイトルとURLをコピーしました