0

场景:您有一个脚本,用户可以在他们的网站上放置一个脚本,当他们点击它时,它会重定向到我的网站,然后只有在他们成功重定向到我的网站并且该函数是我的网站的一部分后才调用一个函数,所以有同源安全策略应该没有任何问题。

那么这种情况可能吗?

编辑

好的,现在我知道可以做到,我遇到了一个泡菜。

function main(){
$(document).ready(function($){
window.location.href = 'http://www.example.com/michael';
theclient.chat();

});
} 

我希望在加载 example.com/michael 之后调用 theclient.chat() 但它不起作用。

更新 2

function main(){
window.location.href = 'http://www.reflap.com/michaelnana';

$(document).ready(function(){
theclient.chat();

});

}

那么这会奏效吗?

4

3 回答 3

2

您必须在以下块中在您自己的站点上调用该函数:

来源页面:

function main(){
    window.location.href = 'http://www.example.com/michael';
}

目标页面 ( http://www.example.com/michael):

$(document).ready(function(){
    theclient.chat();
});   

需要明确的是:如果您也键入页面的 URL,而不仅仅是在重定向之后,这将被调用。

如果您只想在重定向后调用它,则应在执行重定向时添加 URL 参数。

更新:重定向完成后,您无法在原始页面上调用函数。

于 2013-07-06T00:13:12.563 回答
1

在您的目标页面上,如果您包含 jQuery 库,请使用以下代码:

$(document).ready(function(){
theclient.chat();
});

ready()方法确保http://www.reflap.com/michaelnana在运行 JavaScript 之前呈现页面 ( )。

于 2013-07-06T00:45:02.230 回答
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>
于 2013-07-06T01:24:35.157 回答