У меня есть простой интерфейс Pug для моего приложения Node / Express, включающий виджет WebChat и некоторые вкладки с iFrames в них.Я хочу использовать фрагмент jQuery для захвата переменной и помещения ее в URL-адреса, расположенные внутри вкладок iFrames.Сейчас я просто пытаюсь заставить работать URL-адрес Википедии (переменная inputMessage ).
Проблема в том, что мне нужно, чтобы jQuery был частью моего скрипта виджета WebChat вчтобы захватить ввод пользователя из его поля ввода (в переменную), но затем сценарий запускается, и вкладки нижнего колонтитула еще даже не были созданы, поэтому, когда проект запускается, я получаю «неопределенный» в качестве URL-адреса из Википедии,потому что inputMessage
никогда не был помещен туда правильно.Но я не могу поместить нижний колонтитул перед сценарием, так как iFrames с вкладками должны быть ниже на странице, чем виджет чата.Я думаю, что есть много способов достичь этого.Я новичок в Pug и скриптах, поэтому пока не знаю, как это сделать.
index.pug
extends layout
block content
doctype html
html(lang="en")
head
meta(charset='utf-8')
meta(name='viewport' content='width=device-width, initial-scale=1')
script(src='https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js')
article
ul
li.title Study Bot
li.robot
img(src='/images/robot-face.jpg' alt='Robot face')
chat-window
#webchat(action='/chat', method='POST')
script(src='https://cdn.botframework.com/botframework-webchat/latest/webchat.js')
script.
const styleSet = window.WebChat.createStyleSet({
bubbleBackground: 'rgba(252, 229, 53, 1)',
bubbleFromUserBackground: 'rgba(4, 234, 104, 1)',
paddingRegular: 10,
sendBoxHeight: 50,
bubbleMinWidth: 400,
bubbleMaxWidth: 700
});
window.WebChat.renderWebChat({
directLine: window.WebChat.createDirectLine({ secret: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' }),
styleSet
}, document.getElementById('webchat'));
// Add on keypress listener to text input and wait for the user to hit the `enter` key
$("input[aria-label='Type your message']").on('keypress', event => {
// Check if user pressed `enter`
if (event.which === 13){
var inputMessage = $("input[aria-label='Type your message']").val();
document.getElementById('#tab-window').innerHTML = inputMessage;
}
});
footer
.tab
button.tablinks(onclick="openSite(event, 'Encyclopedia')") Encyclopedia
button.tablinks(onclick="openSite(event, 'MSAcademic')") Microsoft Academic
button.tablinks(onclick="openSite(event, 'NewsBlogs')") News / Blogs
#Encyclopedia.tabcontent
iframe#tab-window(src=`https://en.wikipedia.org/wiki/${inputMessage}`)
#MSAcademic.tabcontent
iframe#tab-window(src='https://academic.microsoft.com/')
#NewsBlogs.tabcontent
iframe#tab-window(src='https://www.bing.com/')
script
include ../routes/index.js