Мы используем специально созданную CMS для электронной коммерции, которая использует:
<a href="javascript:AddToBasket(3471412104801);">Add to Cart</a>
...чтобы добавить товар в корзину (назовем его Сайт А). Мы создаем отдельный сайт (сайт B) для одного из наших продуктов, и мне нужно придумать способ связать кнопку «Заказ» на сайте B, чтобы она вызывала указанную выше функцию javascript после загрузки сайта A, используя этот идентификатор продукта.
Что-то вроде следующего псевдокода:
<a href="http://example.com/success#javascript:AddToBasket(3471412104801);">
Add To Cart
</a>
Я основываюсь на том, как работают якорные ссылки HTML, но я уверен, что это не может быть так просто... Верно?
Я сталкивался с решениями, связанными с «инъекциями», в которых у меня нет большого опыта, но общее мнение кажется негативным, в качестве основных проблем упоминаются проблемы безопасности и взлом. Это может звучать глупо, но оба сайта наши, и мы их контролируем. Если нам нужно что-то добавить на страницу успеха на сайте А, это возможно.
2 ответа
Один из способов — открыть http://example.com/success
в вашей функции AddToBasket()
:
function AddToBasket(id) {
window.open('http://example.com/success', '_blank');
...
}
Недостатком этого является то, что JavaScript не выполняется после открытия вашей другой страницы, а ваша страница открывается во время выполнения вашего JavaScript.
Не уверен, что это поможет, но вы можете использовать атрибут onclick для привязки.
<a href="fallbackurl" onclick="AddToBasket(3471412104801);">Add to Cart</a>
Когда вы нажмете якорь, он вызовет функцию.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.