场景:您有一个用户可以在其网站上放置的脚本,当他们点击它时,它会重定向到我的网站,然后只有在成功重定向到我的网站后才调用该功能。该功能是我网站的一部分,因此相同的原始安全策略不应该有任何问题。
情景可能吗?
修改
好了,我知道它可以做到,我遇到了这样做的泡菜。
function main(){
$(document).ready(function($){
window.location.href = 'http://www.example.com/michael';
theclient.chat();
});
}
我希望在加载example.com/michael之后调用client.chat(),但它无效。
更新2
function main(){
window.location.href = 'http://www.reflap.com/michaelnana';
$(document).ready(function(){
theclient.chat();
});
}
这样做会有效吗?
答案 0 :(得分:2)
您必须在以下区块中在您自己的网站上调用该功能:
来源页面:
function main(){
window.location.href = 'http://www.example.com/michael';
}
目标网页(http://www.example.com/michael
):
$(document).ready(function(){
theclient.chat();
});
要明确:如果您输入页面的URL,而不是仅在重定向后,也会调用此方法。
如果您只想在重定向后调用它,则应在执行重定向时添加URL参数。
更新: 重定向完成后,您无法在原始页面上调用函数。
答案 1 :(得分:1)
在目标页面上,如果包含jQuery库,请使用以下代码:
$(document).ready(function(){
theclient.chat();
});
ready()
方法可确保在运行JavaScript之前呈现页面(http://www.reflap.com/michaelnana
)。
答案 2 :(得分:0)
我已经包含了3个示例文件,这些文件可以作为您尝试执行的操作的骨架。
www.external-site.com/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>3rd Party Page</title>
</head>
<body>
<script type="text/javascript"
src="http://www.example.com/michael/embed.js">
</script>
</body>
</html>
www.example.com/michael/embed.js
// load jQuery, keep it in our scope
// I'll not explain how this works but if you're making an embed
// script for other sites, you must make sure to encapsulate all
// your dependencies such as jQuery.
loadDependencies(function($) {
// document onload
$(function() {
// create a button that redirects to example.com/michael
var button = $('<a>').text('click me').click(function() {
window.location.href = 'http://www.example.com/micahel';
});
// insert that button after this script tag
var src = 'http://www.example.com/michael/embjed.js';
$('script[src="' + src + '"]').after(button);
});
});
www.example.com/michael/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>Landing Page</title>
<script type="text/javascript" src="jQuery.js"></script>
<script type="text/javascript" src="theClient.js"></script>
<script type="text/javascript">
$(function() {
// all visitors to this page will trigger this call, not just
// the ones who came from the script embed. If you want to
// differentiate I'd recommened adding a query paremeter to
// the redirect and reading it there.
theClient.chat();
});
</script>
</head>
<body>
</body>
</html>