0

シナリオ:ユーザーが自分の Web サイトに配置できるスクリプトがあり、ユーザーがそれをクリックすると、自分の Web サイトにリダイレクトされ、自分の Web サイトに正常にリダイレクトされた後にのみ関数が呼び出され、その関数が自分の Web サイトの一部であるため、同じオリジンのセキュリティ ポリシーで問題はないはずです。

では、シナリオは可能ですか?

編集

それができることがわかったので、これを行うピクルスに出くわしました。

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();

});

}

それで、これは機能しますか?

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 に答える