Unsafe JavaScript attempt

Unsafe JavaScript attempt to access frame with URL http://site.ru/ from frame with URL http://site.ru/game.php?real_flag=0&is_vk=0. Domains, protocols and ports must match.

Uncaught TypeError: Property 'goToLocation' of object [object DOMWindow] is not a function

В FF5 этой ошибки нет, в Chrome - есть. Не понимаю, откуда берется ошибка, ведь домен site.ru у обоих фрэймов одинаковый.

/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .html4strict.geshi_code {font-family:monospace;} .html4strict.geshi_code .imp {font-weight: bold; color: red;} .html4strict.geshi_code .kw2 {color: #000000; font-weight: bold;} .html4strict.geshi_code .kw3 {color: #000066;} .html4strict.geshi_code .es0 {color: #000099; font-weight: bold;} .html4strict.geshi_code .br0 {color: #66cc66;} .html4strict.geshi_code .sy0 {color: #66cc66;} .html4strict.geshi_code .st0 {color: #ff0000;} .html4strict.geshi_code .nu0 {color: #cc66cc;} .html4strict.geshi_code .sc-1 {color: #808080; font-style: italic;} .html4strict.geshi_code .sc0 {color: #00bbdd;} .html4strict.geshi_code .sc1 {color: #ddbb00;} .html4strict.geshi_code .sc2 {color: #009900;} .html4strict.geshi_code span.xtra { display:block; }
<a href="javascript:void(0)" onclick="window.parent.goToLocation('/balance_control/&type=replenish_account&process=demo');" class="text_link2">Пополнить счет</a>

1 ответов


Решено обходным путем: для ссылки добавлен атрибут evalcode="location.href=/url/":

<a href="javascript:void(0)" evalcode="location.href=/url/" class="text_link_eval">
Правила игры</a>

В родительском фрэйме добавил код:

$(function(){
            $('iframe#frame_for_game').load(function()
            {
                $('iframe#frame_for_game').contents().find('.text_link_eval').unbind('click').bind('click',
                   function() {
                            eval($(this).attr('evalcode'));
                     });
                 });
           });

Работает, проблем с безопасностью нет.

Метод goToLocation самописный? Хотелось бы на него взглянуть.
И еще, было бы правильно использовать полный адрес в этом методе. javaScript в данном случае будет считать что это переход на локальный файловый адрес, т.к. выполняется на клиенте.

Возможно, достаточно написать наименование протокола и сайта

window.parent.goToLocation('http://site.ru/balance_control/&type=replenish_account&process=demo');