使用 JS 变量作为 fancybox data-src 值

Use JS variable for fancybox data-src value

我有一个可扩展的搜索栏,它收集用户的搜索输入,然后将他们重定向到一个以搜索为中心的 php 页面,其中已经显示了对他们输入的搜索。效果很好。

我正在尝试为 search.php 页面打开一个 fancybox iframe。我有一个问题,感觉应该很简单但一直无法克服——我不知道如何将 fancybox 使用的 data-src 值更新为包含搜索输入的 URL .我在 js 变量中有我需要的完全解析的 URL,但我不知道如何让 'data-src' 使用它。如果我在引号中硬编码 URL,它会按照我想要的方式工作,所以我只需要帮助弄清楚如何使用我的 JS 字符串变量而不是硬编码的 URL.

这是我的搜索输入 html:

<div class="infobarsearch-container">
   <div id="sb-search" class="sb-search">
      <form id="tfnewsearch" method="get" action="">

          <input class="sb-search-input" placeholder="Search..." type="search" value="" name="q" id="search">

          <input id="searchbtn" name="searchbtn" class="sb-search-submit" type="submit" onclick="searchstuff()" value="" data-fancybox data-type="iframe" data-src="THIS NEEDS TO BE THE VALUE OF SEARCHINPUT FROM SEARCHSTUFF()" data-caption="My Caption">

          <span class="sb-icon-search"></span>
      </form>
   </div>
</div>

这是我在其中构建包含搜索输入的已解析 url 的 onclick 函数。我需要使用的带有完整 url 的 JS 变量是 'searchinput':

function searchstuff()
   {
      var searchinp = document.getElementById('search');
      searchinput = "inputs/search.php?search=" + searchinp.value;
      alert("searchinput: " + searchinput);
   }

这是页面上用于此用途的 fancybox 初始化:

$('[data-fancybox]').fancybox({
   toolbar  : false,
   smallBtn : true,
   afterClose: function () {
      parent.location.reload(true);
   }

$(".searchbtn").fancybox({
   toolbar  : false,
   smallBtn : true,
});

希望对你有所帮助。我需要获取存储在 searchstuff() 的 'searchinput' 变量中的 url 字符串值,以供 searchbtn 输入元素中的 'data-src' 使用。干杯。

向您的点击事件处理程序添加一个 setAttribute,例如:

document.querySelector('#searchbtn').setAttribute('data-src',searchinput);


function searchstuff()
   {
      var searchinp = document.getElementById('search');
      var searchBtn = document.querySelector('#searchbtn');
      var searchinput = "inputs/search.php?search=" + searchinp.value;
      searchBtn.setAttribute('data-src',searchinput);
      alert("searchinput: " + searchinput);
   }