Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Кнопка onclick=javascript:location в новом окне (https://javascript.ru/forum/misc/12979-knopka-onclick%3Djavascript-location-v-novom-okne.html)

Nikola 11.11.2010 11:20

Кнопка onclick=javascript:location в новом окне
 
Подскажите пожалуйста, кто знает .....есть кнопка сравнения товаров, в интернет магазине:
<input name="apply_compare" value="Сравнить" type="button" onclick="javascript:location='{/shop/path}compare_items/';" />

Нужно что бы эта кнопка открывала страницу сравнения в новом окне.
Вот такой вариант не работает:
<input name="apply_compare" value="Сравнить" type="button" onclick="window.open('{/shop/path}compare_items/');" />

Может кто нибудь, что-то предложить?
Техподдержка разработчика HostCMS то ли не знает, то ли не хочет, помочь.
А может это в принципе не возможно, так как в новую страницу передаются данные о сравниваемых товарах?

monolithed 11.11.2010 12:05

<input name="apply_compare" value="Сравнить" type="button" onclick="window.open('{/shop/path}compare_items/'); return false;" />

2de 11.11.2010 12:09

а это что такое {/shop/path} ? Если окно не открывается вообще то смотрите настройки браузера может там все всплывающие окна заблокированы.

monolithed 11.11.2010 12:23

Цитата:

Сообщение от 2de
а это что такое {/shop/path} ?

От шаблонизатора

Цитата:

Сообщение от 2de
Если окно не открывается вообще то смотрите настройки браузера может там все всплывающие окна заблокированы.

Это еще пользователям предлагаете сказать?:D

На самом деле можно использовать ссылки:

<a href="#">link1</a>
<a href="#">link2</a>
<a href="#">link3</a>

<script type="text/javascript">
window.onload = function(){
    var a = document.getElementsByTagName('a');
    var array = ['http://ya.ru/1','http://ya.ru/2','http://ya.ru/3'];
    for(i=0; i<a.length; i++){
        a[i].onclick = function(i){
            return function(){
                this.href = array[i];
                this.target = '_blank';
            };
            return false;
        }(i);
    }
};
</script>

Nikola 11.11.2010 12:25

Спасибо, заработал вариант
 
Спасибо, заработал вариант
<input name="apply_compare" value="Сравнить" type="button" onclick="window.open('{/shop/path}compare_items/');" />

Там проблема была в том, что была строка с передачей данных устаревшая
$compare_items = $shop->GetCookie('SHOPCOMPARE');

поменяли на
$compare_items = @unserialize($shop->GetCookie('SHOPCOMPARE'));

и заработало.

{/shop/path} - это тег, подстановки адреса страницы в Host.CMS/

Теперь вот хотел поменять на
<input name="apply_compare" value="Сравнить" type="button" onclick="window.open('{/shop/path}compare_items/'),'top=15, left=20, menubar=0, toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, width=800, height=600';" />
что-бы определенного размера, и с отключенными некоторыми функциями, тоже не хочет.
Все это кстати вставляется в шаблон .xsl, может из-за этого?

Bercut 11.11.2010 23:11

Цитата:

Сообщение от Nikola (Сообщение 78585)
$compare_items = @unserialize($shop->GetCookie('SHOPCOMPARE'));

не стоит использовать подавление ошибок "@"
во-первых ресурсоемко для пхп (хотя можно проигнорировать на мелких проектах)
во-вторых при таком коде вы не знаете что у вас в переменной $compare_items - нужный вам объект или просто false
в-третьих (и в-главных) привыкните использовать и потом вовек не отловите фатальную ошибку

vah-smile 13.11.2010 04:22

А как можно открыть сылку во фрейме с испольхованием JS?

Bercut 13.11.2010 11:16

почему-то всех банят в гугле... вас тоже?
http://www.google.ru/search?q=javasc... фрейме


Часовой пояс GMT +3, время: 22:53.