метод обратного вызова в iframe, чтобы возвратить значение открывателю - PullRequest
2 голосов
/ 15 января 2010

Мне нужно вызвать метод обратного вызова в iframe, чтобы вернуть значение открывателю.

Я знаю SqueezeBox имеет статические методы «назначить, открыть, закрыть», но я не понимаю, как это работает, может кто-нибудь помочь мне, пожалуйста?

1 Ответ

1 голос
/ 03 февраля 2010

Я мало что знаю о SqueezeBox, но я немного поработал с коммуникацией iframe. Если ваш iFrame и программа открывания не находятся в одном домене, вы не можете звонить с одного на другой.

Что я сделал, чтобы обойти это, так это записал в хеш URL. Открывающий может затем прочитать это значение и выяснить, что делать.

Например,

<iframe name="my-frame" id="my_frame" src="http://www.somewhere.com" width="540" height="1000" border="0" style="overflow:hidden; border: none;">
   <script type="text/javascript">window.location.hash = 'close';</script>
</iframe>

<script type="text/javascript">

  // Function to look for a token in the url hash 
  var tokenValue = function(){
    var hash = document.location.hash;
    return (hash && hash.length > 1) ? hash.substring(1, hash.length) : null;
  };

  // Function to set the token and notify the user when it is found in the url hash.
  var checkForToken = function(){
    if (tokenValue()) {
      alert(tokenValue());
      $clear(periodical);
    }
  };

  // Start a periodical that will check for
  var periodical = checkForToken.periodical(100);
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...