【发布时间】:2017-01-21 07:43:55
【问题描述】:
我正在尝试打开一个外部 url(在我们的网络之外)并显示一个隐藏的 div(用于视频播放)。
我的 HTML 代码:
<div id="myDiv">
<input type="button" id="myButton" value="Watch Career Video"></input>
</div>
我的 JS 代码:
$(document).ready(function() {
$("#myDiv").on('click', '#myButton', function() {
//re-direct to career video url
window.location.href = "https://www.mynextmove.org/profile/summary/13-2021.02";
//show video div area ** THIS DOES NOT WORK ?? **
$('#careervid-wrapper').show();
});
});
具体来说,我怎样才能显示“careervid-wrapper”?我需要使用 AJAX 吗?跨域策略解决方法?弃船?
- URL 可以在新标签页或新窗口中打开,没关系。
- 当我尝试使用 AJAX 时,我无法让 ajax 成功运行。
您可以在此处查看 JSFiddle: https://jsfiddle.net/aussiejoe/njhsxmq7/
【问题讨论】:
-
“弃船?” - 除非其他站点明确愿意合作:是的。因为同源策略阻止您在任何新选项卡/窗口/框架中访问来自不同来源的内容,并且如果没有其他站点启用 CORS,您也无法使用 AJAX 来获取内容。
-
@CBroe 他们可能会将我们添加到他们的 CORS 政策中。这是一个远景,但它是一种可能性。
-
假设代码中的站点是真实的,mynextmove.org/help/about 说,“此处列出的职业以及除下面列出的职业信息之外的职业信息来自 O*NET Database 的 21.1 版本." 多点击一下会转到O*NET® Web Services - 也许您可以通过这种方式获得所需的数据,另外还有一个好处是它可能经过适当的结构化,这样您就不必解析它了的源代码。另外,似乎也是免费的。
-
@CBroe 是的,我们为该访问提供了付费订阅。这个想法是希望避免编写任何代码,而只是直接热链接到页面。我认为让他们将我们添加到他们的 CORS 政策中不会有问题,但目前我不能肯定地说。
-
我假设您正在尝试访问 iframe 中的某些内容?您不会显示正在运行的 HTML。如in this answer 所示,如果不在同一个域中,则不能。而 CORS 也无济于事;有关其工作原理的更多信息,请参阅this answer...
标签: javascript jquery html external