Bigcommerce - 函数执行后是不是可以更改文本?

Posted

技术标签:

【中文标题】Bigcommerce - 函数执行后是不是可以更改文本?【英文标题】:Bigcommerce - Is it possible to change text after a function executes?Bigcommerce - 函数执行后是否可以更改文本? 【发布时间】:2015-06-05 11:39:26 【问题描述】:

我现在正在开发一个网站,我想更改一些文本。该站点在标题中具有搜索功能,在输入字段中键入 3 或 4 个字符后,产品列表会下拉列出产品名称中包含这些字符的产品(类似于:http://www.lightexports.com/)。我想更改显示在该列表底部的文本“查看所有结果”。

我尝试使用 .replace() 函数,但这不起作用,而且我不能使用 window.onload,因为如果您从不使用搜索,那么代码将永远不会加载到网站上。显示产品列表的代码和我要更改的文本仅在您开始在搜索栏中输入后才会出现。

**注意:我使用的平台是 Bigcommerce,只允许 html、CSS 和 javascript

非常感谢任何帮助。提前致谢,祝您编码愉快!

【问题讨论】:

对于在js中动态创建的元素,你必须委托事件。 【参考方案1】:

我想通了。实现此目的的最佳方法 7:

    下载加载到您网站上的 quicksearch.js 文件 - 它在 Snippets/QuickSearchJS.html 中排队,您可以通过导航到 yourstore.com/javascript/quicksearch.js 下载它。

    将此文件上传到您的 WebDav 文件夹/template/js/

    在您的Snippets/QuickSearchJS.html Snippet 文件(您可以从 BigCommerce 后端“设计 > 编辑 HTML/CSS”页面编辑)中,注释掉原始的 <script> 标签并添加一个标签以指向您上传到的 JS 文件你的 WebDav。新的Snippets/QuickSearchJS.html 文件应如下所示:

    <!-- <script type="text/javascript" src="%%GLOBAL_CdnAppPath%%/javascript/quicksearch.js?%%GLOBAL_JSCacheToken%%"></script> -->
         <script type="text/javascript" src="%%ASSET_js/quicksearch.js%%?%%GLOBAL_JSCacheToken%%"></script>
    

(是的,我知道语法看起来很奇怪,但这只是因为使用 ASSET 的方式以及 cachetoken 的方式也必须有 %%。这个语法是正确的。)

    在您通过 WebDav 上传到 js 文件夹的 quicksearch.js 中,在第 184-195 行附近编辑以下行:

        if(all_results_count)
        
            var tr = document.createElement('TR');
            var td = document.createElement('TD');
            tr.className = "QuickSearchAllResults";
            tr.onmouseover = function()  QuickSearch.over_all = true; ;
            tr.onmouseout = function()  QuickSearch.over_all = false; ;
            td.colSpan = 2;
            td.innerHTML = $('viewmoreurl', response).text();
            tr.appendChild(td);
            popup.appendChild(tr);
        
    

让它们看起来像这样:

        if(all_results_count)
        
            var tr = document.createElement('TR');
            var td = document.createElement('TD');
            tr.className = "QuickSearchAllResults";
            tr.onmouseover = function()  QuickSearch.over_all = true; ;
            tr.onmouseout = function()  QuickSearch.over_all = false; ;
            td.colSpan = 2;
            td.innerHTML = 'YOUR NEW CUSTOM TEXT/NAME FOR THE "View All Results" LINK GOES HERE';
            tr.appendChild(td);
            popup.appendChild(tr);
        

将“查看所有结果”链接的新名称放在以 td.innerHTML = 开头的行的 ' 和 ' 之间

    现在只需保存并刷新您的页面,您的文本将在本地更改,无需编写 JS 并监视事件或委托任何操作。

如果这有帮助或者您有任何问题,请告诉我。

【讨论】:

以上是关于Bigcommerce - 函数执行后是不是可以更改文本?的主要内容,如果未能解决你的问题,请参考以下文章

从 Bigcommerce API 获取的简单反应应用程序

在我的 Mac 上安装 BigCommerce Stencil-CLI 时遇到问题

BigCommerce 自定义结帐页面

Bigcommerce Stencil 声明自定义前端变量

付款方式 BigCommerce

如何在 Bigcommerce 商店中配置和上传 webhook?