实例说明为什么不要行内使用javascript
<a href="#" onclick="al()">保存</a>
上面的代码,很方便使用,所有浏览器都支持
虽然我很早就看过一些书,说html,css,js分开来,比较容易维护,但是我贪图方面,还是经常这么写,不过我今天用火狐调试的时候发现,还是不要行内写了,因为这样很不安全,因为用火狐的firebug可以轻松让代码失效!
<html>
<head>
<script>
function al()
{
alert("good");
}
</script>
</head>
<body>
<a href="#" onclick="al()">保存</a>
</body>
</html>
上面的代码是点击标签弹出对话框
效果如图:
但是如果我在火狐里面找到a标签并把里面的js代码去掉的话,在单击a标签就不会弹出对话框了,如下图
所以假如你这个单击事件是判断用户输入数据是否合法的话,那么就无法判断了
本人是做asp.net的,今天就发现这个问题,因为asp.net服务器控件,有两个单击事件,一个前台一个后台的,我用前台的单击事件判断用户的输入数据,合法的话调用后台事件,结果用火狐调试,就发现了上面介绍的现象,即使数据不合法也直接调用后台方法了,也许我这个不是什么技术,不过我为自己发现这个问题而高兴,特此发文章分享一下,哈哈
解决方法:
<a id="a1" href="#">保存</a>
<script>
document.getElementById("a1").onclick=function(){}
</script>
相关推荐
-
实例说明为什么不要行内使用javascript
很多人都曾经这么使用Javascript 复制代码 代码如下: <a href="#" onclick="al()">保存</a> 上面的代码,很方便使用,所有浏览器都支持 虽然我很早就看过一些书,说html,css,js分开来,比较容易维护,但是我贪图方面,还是经常这么写,不过我今天用火狐调试的时候发现,还是不要行内写了,因为这样很不安全,因为用火狐的firebug可以轻松让代码失效! 下面看一下为什么: 复制代码 代码如下: <ht
-
Easyui使用Dialog行内按钮布局的实例
JSP页面 <div class="easyui-layout" data-options="fit:true"> <div data-options="region:'north',split:false" > <div title="角色分配" > <table cellpadding="12" cellspacing="0" > &l
-
javascript动态添加样式(行内式/嵌入式/外链式等规则)
添加CSS的方式有行内式.嵌入式.外链式.导入式 a)动态引入样式表文件: 复制代码 代码如下: function loadLink(url){ var link = document.createElement("link"); link.type = "text/css"; link.rel = "stylesheet"; link.href = url; var head = document.getElmentsByTagName(&qu
-
Vue中通过属性绑定为元素绑定style行内样式的实例代码
1.直接在元素上通过:style的形式,书写样式对象 <h1 :style="{color:'red','font-weight':200}">这是一个H1</h1> 2.将样式对象定义在data中,并直接引用到:style中 1:在data上定义样式 data:{ styleObj1:{color:'blue','font-weight':200,'font-size':'40px'}, } 2:在元素中,通过属性绑定的形式,将样式对象应用到元素中 <h
-
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
本文讲述了js的三种使用方式(行内js.内部js.外部js)的实例代码,感兴趣的小伙伴们可以参考一下,具体如下: 1.行内js:js不单独写出 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js使用方式1:行内js</title> </head> <body> <input
-
JS表格组件BootstrapTable行内编辑解决方案x-editable
前言:之前介绍bootstrapTable组件的时候有提到它的行内编辑功能,只不过为了展示功能,将此一笔带过了,罪过罪过!最近项目里面还是打算将行内编辑用起来,于是再次研究了下x-editable组件,遇到过一些坑,再此做个采坑记录吧!想要了解bootstrapTable的朋友可以移步JS组件系列--表格组件神器:bootstrap table. 一.x-editable组件介绍 x-editable组件是一个用于创建可编辑弹出框的插件,它支持三种风格的样式:bootstrap.Jquery U
-
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
最近做的一个项目是基于 vue + AntDesign 的.由于项目要求,需要在 Table 组件的行内点右键的时候弹出菜单.在线演示地址及最终效果图如下: 在线演示地址>> 首先新建一个Table组件的实例: <a-table :columns="columns" :rowKey="record => { return record.INDEX;}" :dataSource="tableData" /> ... c
-
Repeater事件OnItemCommand取得行内控件的方法
记录一下,主要是这句:TextBox txtNum = e.Item.FindControl("txtNum") as TextBox; Repeater真是太强了,太灵活.除了Repeater别的都不用. 复制代码 代码如下: <table> <asp:Repeater ID="rptList" runat="server"OnItemCommand="rptList_ItemCommand">
-
jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】
前几天项目中遇到一个需求用到了Easyui datagrd行内添加和编辑数据,同时对行内数据上移下移,所以对这几个功能做个总结. 1.首先大概说下这几个功能里用到的主要方法,行内添加数据主要是添加列的editor属性, 行内编辑主要使用beginEdit(), endEdit(),同时一个关键就是拿到当前的操作行索引editIndex. 2.撤销用到了rejectChanges(). 3.保存时使用getRows()或者getChanges(). getChanges()主要是获取添加或编辑的数
-
EasyUI中的dataGrid的行内编辑
这个js代码是别人写的,可能不是最好的,但我个人觉得首先能帮助别人解决功能问题的话就特别好.我稍加修改后用在了自己的项目上了,这里贴出来分享一下.后台用的TinkPHP因为都是查增删改比较简单,这里就不贴了.前台效果图因为比较懒,也不贴了. $(function () { var datagrid; //定义全局变量datagrid var editRow = undefined; //定义全局变量:当前编辑的行 datagrid = TskupluAddPacket.datagrid({ ur
随机推荐
- 使用正则表达式判断密码强弱
- Redis主从实现读写分离
- JS动态的把左边列表添加到右边的实现代码(可上下移动)
- 解决extjs grid 不随窗口大小自适应的改变问题
- JavaScript仿微信打飞机游戏
- Linux编程之PING实现
- 详解Java回调的原理与实现
- 基于PHP常用字符串的总结(待续)
- php关于array_multisort多维数组排序的使用说明
- Python判断变量是否已经定义的方法
- Delphi用TActionList实现下载文件的方法
- Android 使用Vitamio打造自己的万能播放器(7)——在线播放(下载视频)
- 结合AJAX进行PHP开发之入门
- PHP 登录记住密码实现思路
- 简单介绍利用TK在Python下进行GUI编程的教程
- MySQL中create table语句的基本语法是
- jQuery实现点击查看大图并以弹框的形式居中
- jQuery简单实现提交数据出现loading进度条的方法
- javascript获取鼠标点击元素对象(示例代码)
- js带按钮的提示框可供选择示例代码