当前位置: 首页 > news >正文

太原做网站 小程序百度竞价推广怎么样才有效果

太原做网站 小程序,百度竞价推广怎么样才有效果,网站推广工做计划范本,榆林免费做网站一、场景 背景:因为系统里经常有新活动或者公告需要通知所有用户,希望前端维护的这个弹窗里的内容可以由后端接口返回。这样就不需要每次上新活动的时候,前端项目都发版了。因此,前端维护了这个弹窗和它的关闭事件,至…

一、场景

  • 背景:因为系统里经常有新活动或者公告需要通知所有用户,希望前端维护的这个弹窗里的内容可以由后端接口返回。这样就不需要每次上新活动的时候,前端项目都发版了。因此,前端维护了这个弹窗和它的关闭事件,至于弹窗里展示什么内容,则由接口返回。
  • 问题:后端返回了展示的HTML里有一个按钮,希望点击这个按钮时可以关闭弹窗。如下图的交叉按钮:活动弹窗的示意图

二、解决方案

  • 考虑到需求的历史背景,以及后续的可维护性。决定在后端返回的HTML里,给期望关闭弹窗的按钮添加上ID。
  • 而在前端项目里,弹窗加载完成并且接口已经返回数据后,我们可以通过ID获取到用于关闭弹窗的按钮元素,然后给这个按钮添加一个点击事件监听器。当用户点击该元素时,会触发关闭弹窗的函数。

三、代码演示

Step1. 前端项目里存放着弹窗,弹窗里的内容通过读取接口返回的 html 赋值给content,然后通过v-html 呈现。将关闭弹窗的函数写在此处,下面仅展示一些核心的实现代码(Vue3+Vuetify):

<template><v-dialogv-model="visible"><v-card ><div v-html="content"></div></v-card></v-dialog>
</template>
handleClose() {this.visible = false
}

Step2. 此时,接口返回一段JSON,用于页面呈现。里面可能包含了一个按钮用于关闭这个弹窗,我们需要给这个按钮添加上ID(下图里的id=\"close-btn\"),与后续的步骤关联。

{"content": "<div>\n <a type=\"button\">\n <span class=\"v-btn__content\" id=\"close-btn\">关闭</span>\n    </a>\n  </div>","startTime": "2023-12-01 00:00:00","endTime": "2024-2-29 00:00:00"
}

Step3. 在前端项目里,弹窗加载完成并且接口已经返回数据后,我们可以通过ID获取到用于关闭弹窗的按钮元素,然后给这个按钮添加一个点击事件监听器。当用户点击该元素时,会触发关闭弹窗的函数。

document.getElementById('close-btn')?.addEventListener('click', this.handleClose)

四、可能存在的坑点

需要等接口的数据返回并且生成了相关的元素以后才能对按钮添加事件监听。否则会监听不到这个元素。验证过程如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>验证节点未生成时添加事件监听是否有效</title><!-- 这个案例证明了给一个不存在的节点(通过指定ID的方式)添加事件监听是无效的,即使之后会往页面上生成同样id的元素 --><!-- 因此,一定要确保元素已经在页面上挂载了,才去添加事件监听 --></head><body><div id="parent"><buttonid="create">生成新按钮</button></div><script>/*** 创造一个新的元素**/function createNewNode() {const parentElem = document.getElementById('parent')const newElem = document.createElement('button')newElem.textContent = '新按钮'newElem.setAttribute('id', 'new')parentElem?.insertBefore(newElem, document.getElementById('create'))document.getElementById('new')?.addEventListener('click', function () {newNodeOnClick('按钮生成后')})}/*** 新元素被点击时触发* @param timing 点击的时机**/function newNodeOnClick(timing) {console.log('newNodeOnClick', timing)}document.addEventListener('DOMContentLoaded', function (e) {document.getElementById('create')?.addEventListener('click', createNewNode)document.getElementById('new')?.addEventListener('click', function () {newNodeOnClick('页面加载完毕后')})})</script></body>
</html>
http://www.shuangfujiaoyu.com/news/56373.html

相关文章:

  • 抛丸机网站怎么做头条发布视频成功显示404
  • 知名企业门户网站建设服务公司搜索引擎最佳化
  • 网站开发合同甲方的权利公众号推广接单平台
  • 湖北营销型网站建设费用最新做做网站
  • 郑州做网站hnmaoruiseo快速排名上首页
  • 怎么做坑人的网站bt磁力在线种子搜索神器下载
  • 最近军事新闻大事2020seo网站推广实例
  • 如果修改wordpress后台登录域名济南网站推广优化
  • 安卓手机怎么做网站做网站哪家公司比较好而且不贵
  • 做网站几百块可信吗磁力云搜索引擎入口
  • wap免费空间牡丹江网站seo
  • ppt怎么做网站物联网开发
  • 网站开发的技术分类发布平台有哪些
  • 网页做什么主题好无锡seo培训
  • 做门户网站啥意思seo黑帽技术工具
  • 国家建设部门三类人员官方网站网络seo软件
  • 河北建站公司软文发布平台有哪些
  • 营销型网站建设服务第三方网络营销平台有哪些
  • 网络营销网站建设方案网络热词有哪些
  • 互联网推广专员做什么的网站站内关键词优化
  • 智能建站做网站好吗济南竞价托管
  • 做网站多少钱特惠西宁君博s宣传软文模板
  • 适合设计师的网站百度趋势搜索大数据
  • 青岛官网建站软文文章
  • cms网站访问人数百度教育app
  • 网站建设公开招标成都网站制作
  • 重庆大渡口建设网站qq营销推广方法和手段
  • 做企业网站的公司有哪些百度收录比较好的网站
  • 自己主机做标签电影网站四川seo哪里有
  • 杭州网站建设价格关键少数