Как заставить отдельные html-виджеты работать на динамических страницах

#javascript #widget #velo #dynamic-pages

#javascript #виджет #velo #динамические страницы

Вопрос:

Я создаю веб-сайт криптовалюты (не судите строго) на Wix и создаю сотни динамических страниц для выделения каждой валюты. Что мне также нужно, так это иметь html-виджет из TradingView на каждой странице, показывающий торговый график каждой криптовалюты. Например, на динамической странице биткойнов есть виджет торгового графика BTC, на странице Ethereum отображается график ETH и т. Д. Виджет связан здесь: https://uk.tradingview.com/widget/advanced-chart /

Теперь, просто для справки, я не уверен, создает ли Wix динамические страницы, как везде, поскольку я новичок в программировании (следовательно, использую веб-конструктор), но он работает с Javscript, и когда динамический набор данных создается на странице Wix, его идентификатор — #dynamicDataset, а htmlидентификатор окна виджета — #html1.

Ближайшая помощь в Интернете, которую я нашел для этого, находится по этой ссылке: https://www.wix.com/velo/forum/community-discussion/solution-html-iframes-connected-to-a-dataset-on-a-dynamic-page

Однако, выполнив все шаги до конца, я получаю это сообщение об ошибке при публикации сайта Ошибка Wix code SDK: параметру url, который передается методу src, не может быть присвоено значение . Он должен иметь тип url.

Это мой код:

     $w.onReady(function () {
 >to load the page before running the code
    $w("#dynamicDataset").onReady(function () { 
    >to load the dynamic dataset's data before running the following code
        $w("#html1").scrolling = "no"; 
                 >so that scroll bars, if any, do not appear on our page. 
                         >if you want you can keep them!
        let widget = $w('#dynamicDataset').getCurrentItem().widgetURL; 
                 >we create a variable called "widget" and set its value to the URL we have  
                         >put in our data collection.
        $w("#html1").src = widget; 
                 >we set the dynamic page's HTML element's URL value to that of "widget", 
                         >which is actually the URL from our data collection.
    })
});
 

Я был бы очень признателен за любую помощь в этом, и у меня есть ощущение, что этот код почти правильный? Если бы кто-нибудь мог указать мне правильное направление, я был бы вечно благодарен. Я искал уже 3 дня и безуспешно.

Console.log:

{«image»:»wix:image://v1/da0ce5_be9fb686611249f19c63f3cb3a98ca9b ~ mv2.jpg/Ethereum% 2 0300.jpg#originWidth=300amp;originHeight= 300″, «description»: «Ethereum — это децентрализованная блокчейн-система с открытым исходным кодом, которая имеет собственную криптовалюту Ether. ETH работает как платформа для множества других криптовалют, а также для выполнения децентрализованных смарт-контрактов.», «_id»: «00000000-0000-0000-0000-000000000002», «_owner»: «da0ce518-6ee8-4595-b155-afccd4b15aa0», «_createdDate»: «Вт 16 февраля 2021 21:30:26 GMT 0000 (время по Гринвичу)», «_updatedDate»: «Сб 20 февраля 2021 18:02:20 GMT 0000 (время по Гринвичу)», «smallTitle»: «Ethereum (ETH)», «график»: «https://www.helpmebuybitcoin.com/ethereum-1 «, «заголовок»: «Ethereum», «link-cryptocurrencies-title»: «/cryptocurrencies / ethereum», «link-cryptocurrencies-all»: «/cryptocurrencies /» } »»

Комментарии:

1. Судя по сообщению об ошибке, похоже, что свойство widgetURL текущего элемента пустое. Можете ли вы утешить. зарегистрируйте переменную widget или, может быть, весь объект CurrentItem, чтобы мы могли видеть, какое значение?

2. Привет @Sam, я не уверен, как это сделать. Я погуглил, но не уверен, смогу ли я сделать это через Wix? Помогут ли скриншоты базы данных dynamicdatabase и кода? Я новичок в этом, поэтому прошу прощения за то, что я n00b!

3. Перед этой строкой $w(«html1»).src = widget; добавьте эту строку console.log($w(‘#dynamicDataset’).getCurrentItem()); При предварительном просмотре эта новая строка выведет что-то в консоли разработчика в нижней части окна. Скопируйте это (не забудьте полностью развернуть) и опубликуйте в своем вопросе.

4. Я разместил это там, но не смог правильно форматировать код — раздражает!

5. Это все объясняет. У вас нет поля с именем widgetURL в коллекции, к которой подключается ваш dataset. Итак, когда вы делаете это: $w("#html1").src = widget; вы устанавливаете значение src компонента html undefined равным .