Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Открыть последовательно два URL (https://javascript.ru/forum/misc/69449-otkryt-posledovatelno-dva-url.html)

SkyNetYar 23.06.2017 14:43

Открыть последовательно два URL
 
Добрый день!
Имеется в браузерном расширении такая конструкция:

t.push({
						title: "Записать лид",
						url: this.config.bitrix_domain + "/crm/configs/import/lead.php?LOGIN=lolita&PASSWORD=ololoshka&TITLE="+ encodeURIComponent(this.call.source) + " " + "(" + encodeURIComponent(this.call.entityPhone) + ")"+"&PHONE_WORK="+ encodeURIComponent(this.call.entityPhone)+"&SOURCE_ID="+ encodeURIComponent(this.call.source) +"",
                        url: this.config.bitrix_domain + "/search/?q=" + this.call.entityPhone 
					}),


В данной конструкции срабатывает только второй URL а первый куда то проглатывается, нужно открыть сперва один затем другой, первый можно и в фоне открыть...

Подскажите как не догоняю =(

Paguo-86PK 23.06.2017 21:40

Второй же затирает первый…

SkyNetYar 26.06.2017 11:50

Цитата:

Сообщение от Paguo-86PK (Сообщение 456346)
Второй же затирает первый…

Ну это я и пытался сказать! А вот как сделать мне так что бы не затирался? Сперва по первому переходил затем 2-й открывал! можно даже первый url в фоне.

laimas 26.06.2017 11:56

Цитата:

Сообщение от SkyNetYar
А вот как сделать мне так что бы не затирался?

Объект не может иметь два свойства с одинаковыми именами.

SkyNetYar 26.06.2017 13:53

Цитата:

Сообщение от laimas (Сообщение 456512)
Объект не может иметь два свойства с одинаковыми именами.

Спасибо за ответ! Может ссылкой кинете в меня или намекнете как мне поочередное открытие этих ссылок сделать?

EmperioAf 26.06.2017 14:05

SkyNetYar,
Из приведенного кода не совсем понятно что за массив t, и каким образом потом делаются запросы, но с 2-мя запросами код вероятно выглядеть будет так
t.push({
    title: "Записать лид",
    url: this.config.bitrix_domain + "/crm/configs/import/lead.php?LOGIN=lolita&PASSWORD=ololoshka&TITLE=" + encodeURIComponent(this.call.source) + " " + "(" + encodeURIComponent(this.call.entityPhone) + ")" + "&PHONE_WORK=" + encodeURIComponent(this.call.entityPhone) + "&SOURCE_ID=" + encodeURIComponent(this.call.source) + ""
}),
t.push({
    title: "Сделать поиск по телефону",
    url: this.config.bitrix_domain + "/search/?q=" + this.call.entityPhone
}),

laimas 26.06.2017 14:06

Цитата:

Сообщение от SkyNetYar
как мне поочередное открытие этих ссылок сделать?

В чем?

Не могут два элемента массива иметь один и тот же индекс. В ассоциативном массиве не могут быть два одинаковых ключа, если в нем есть уже ключ "а", то указанный за ним второй ключ "а" перезапишет первый и массив будет иметь не два элемента, а один.

В JS нет ассоциативных массивов, но есть объекты, в которых свойства подчинены тем же правилам, что и ключи в ассоциативном массиве. Объект

{url: 'url1', url: 'url2'}


будет содержать не два свойства url с разными значениями, а одно - {url: 'url2'}.

Хотите поместить в свой объект два URL, значит поместите их в свойство url как массив:

t.push({
                        title: "Записать лид",
                        url: [this.config.bitrix_domain + "/crm/configs/import/lead.php?LOGIN=lolita&PASSWORD=ololoshka&TITLE="+ encodeURIComponent(this.call.source) + " " + "(" + encodeURIComponent(this.call.entityPhone) + ")"+"&PHONE_WORK="+ encodeURIComponent(this.call.entityPhone)+"&SOURCE_ID="+ encodeURIComponent(this.call.source) +"",
                        this.config.bitrix_domain + "/search/?q=" + this.call.entityPhone
                    ]})


а уж кто их выводит и может ли оперировать массивом у свойства, этого я не ведаю.

SkyNetYar 26.06.2017 14:45

Цитата:

Сообщение от EmperioAf (Сообщение 456521)
SkyNetYar,
Из приведенного кода не совсем понятно что за массив t, и каким образом потом делаются запросы, но с 2-мя запросами код вероятно выглядеть будет так

Это будет 2 разных кнопки!



laimas Спасибо за развернутый ответ, в предложенном Вами варианте открывается первая ссылка ,и через запятую в стоке адреса второй url ,естественно нужного результата нет...

Дело все в том что я не могу спарсить ответ от Битрикс API который отдает такой ответ по первой ссылке

{'error':'201','ID':'18595','error_message':'Ли� � добавлен','AUTH':'dd0f24bd8df53ebf7bcf69a1 8a0c1a8a'}

На белом экране,мне надо спарсить его и взять ID тоесть в данном случае 18595 и затем уже открыть ссылку вида
this.config.bitrix_domain + "/crm/lead/edit/18595/"

Подсказали типа так
var responsedata = eval("(" + Request.responseText + ")")

Но я ума не приложу как этот код туда приспособить...

laimas 26.06.2017 15:07

Цитата:

Сообщение от SkyNetYar
в предложенном Вами варианте открывается первая ссылка ,и через запятую в стоке адреса второй url

Это массив описывающий два параметра свойства url объекта, а не ссылка, которую нужно пихать куда либо. Если нужно обратиться по этим ссылкам, то первая доступна будет как t[индекс массива, коли у вас это push()].url[0], а вторая t[индекс].url[1]. А уж кто, где и когда получает их, и главное предусмотрено ли это вашим сценарием, этого я не знаю.

Поэтому по данному вопросу ответить невозможно, как и бог знает причем тут eval("(" + Request.responseText + ")").

SkyNetYar 26.06.2017 15:20

Не совсем понимаю,ну я уже не знаю как изгалится что бы открыться эти 2 ссылки одним нажатием поочередно или одновременно !? это вообще возможно каким либо способом?


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