- 浏览: 322408 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
lst923:
...
java 实现图片裁剪 -
kakarottoz:
多谢博主分享,正好用到!
java 实现图片裁剪 -
Vcb:
http://osgi.jxtech.net 是一个完全基于O ...
OSGi介绍 -
Vcb:
是一个完全基于OSGi的开发平台,有在线演示,免费插件可供下 ...
OSGi介绍 -
mikey_5:
谢谢分享,原来设置: style="word-bre ...
td内容自动换行
/**
*
* uur UI框架通用程序
* 使用需加入jquery 1.4+
* jslfl
*/
/**
* 返回上一操作页面
*/
function returnPrevious(){
history.go(-1);
}
/**
* 直接连接URL
* @param {Object} url
*/
function toUrl(url){
if(url == null || url == ""){
return;
}
location.href = url;
}
/**
* 将连接返回到frame中
* @param {Object} url 请求连接
* @param {Object} frameid frame的id
*/
function toFrame(url,frameid){
$("#" + frameid).attr("src",url);
}
/**
* 刷新本页面
*/
function refresh(){
location.reload();
}
/**
* 刷新父页面
*/
function refreshParent(){
parent.location.reload();
}
/**
* 把下拉列表选项的文本赋值给文本框
* @param {Object} id 下拉列表的ID
* @param {Object} name 文本框的ID
*/
function selTextId2Name(id,name){
$("#" + name).val($("#" + id).attr("relText"));
}
/**
* 删除一条数据
* @param {Object} url
*/
function delOne(url){
top.Dialog.confirm("数据删除后不能恢复,确认要删除 1 条选中数据吗?",function(){location.href = url});
}
/**
*删除多项
* 参数追加到请求后面
**/
function delMultiple(url) {
var vals = "";
var cont = 0;//选中的个数
$("#listData input:checked").each(function(){
if($(this).attr("checked")){
cont ++;
vals += $(this).val() + ",";
}
})
if(cont == 0){
top.Dialog.alert("请选择要删除的对象");
return;
}else if(cont > 0 && vals.length >1){
vals = vals.substring(0,vals.length-1);
top.Dialog.confirm("数据删除后不能恢复,确认要删除 " + cont + " 条选中数据吗?",function(){location.href = url + vals});
}else{
return;
}
}
/**
*多项失效
* 参数追加到请求后面
**/
function invalidMultiple(url) {
var vals = "";
var cont = 0;//选中的个数
$("#listData input:checked").each(function(){
if($(this).attr("checked")){
cont ++;
vals += $(this).val() + ",";
}
})
if(cont == 0){
top.Dialog.alert("请选择要操作的对象");
return;
}else if(cont > 0 && vals.length >1){
vals = vals.substring(0,vals.length-1);
top.Dialog.confirm("数据 失效 后可以通过[ 启用 ]操作恢复,确认要失效 " + cont + " 条选中数据吗?",function(){location.href = url + vals});
}else{
return;
}
}
/**
* 启用多项数据
* 参数追加到请求后面
* @param {Object} url
*/
function usingMultiple(url) {
var vals = "";
var cont = 0;//选中的个数
$("#listData input:checked").each(function(){
if($(this).attr("checked")){
cont ++;
vals += $(this).val() + ",";
}
})
if(cont == 0){
top.Dialog.alert("请选择要操作的对象");
return;
}else if(cont > 0 && vals.length >1){
vals = vals.substring(0,vals.length-1);
top.Dialog.confirm("确认要启用 " + cont + " 条选中数据吗?",function(){location.href = url + vals});
}else{
return;
}
}
/**
* 编辑数据项
* 参数追加到请求后面
* @param {Object} url
*/
function editOne(url) {
var vals = "";
var cont = 0;//选中的个数
$("#listData input:checked").each(function(){
if($(this).attr("checked")){
cont ++;
vals += $(this).val() + ",";
}
})
if(cont == 0){
top.Dialog.alert("请选择要修改的对象");
return;
}else if(cont > 1){
top.Dialog.alert("对不起,一次只能修改一条数据");
return;
}else if(cont == 1 && vals.length >1){
vals = vals.substring(0,vals.length-1);
location.href = url + vals;
}else{
return;
}
}
/**
* 查看数据项
* 参数追加到请求后面
* @param {Object} url
*/
function viewOne(url) {
var vals = "";
var cont = 0;//选中的个数
$("#listData input:checked").each(function(){
if($(this).attr("checked")){
cont ++;
vals += $(this).val() + ",";
}
})
if(cont == 0){
top.Dialog.alert("请选择要查看的对象");
return;
}else if(cont > 1){
top.Dialog.alert("对不起,一次只能查看一条数据");
return;
}else if(cont == 1 && vals.length >1){
vals = vals.substring(0,vals.length-1);
location.href = url + vals;
}else{
return;
}
}
/**
* dAjax('/base/code/edit.do','codeid=11&codename=22','json',ok);
* @param {Object} url 访问地址(eg,'/base/code/edit.do'
* @param {Object} params 访问参数(eg,'codeid=11&codename=22'
* @param {Object} returnType 返回类型('html','xml','json','text'
* @param {Object} func 返回执行函数(如,ok,原型为ok(data)
*/
function dAjax(url,params,returnType, func){
$.ajax({
type: "POST",
url: url,
dataType:returnType,
data: params,
success: func
});
}
/**================================================
*
* 数据验证
*
* ================================================*/
/**
* 验证输入为数字,只能是整数或小数或空
* @param {Object} id 表单项ID
* @param {Object} msg 表单项名称
* @return {TypeName}
*/
function isNullDigit(id, msg) {
var reg = /^-?\d+\.{0,}\d{0,}$/;
var val = document.getElementById(id).value;
val = $.trim(val);
if(val == "" || val.length < 1)
return true;
if (!reg.exec(val)) {
document.getElementById(id).value = "";
top.Dialog.alert("["+msg+"] 只能是数字(整数或小数)!");
return false;
}
return true;
}
/**
* 输入表单项格式化数字,返回2位小数格式
* @param {Object} obj 输入表单项
* @return {TypeName}
*/
function formatNum(obj){
var num = obj.value;
if(num.length == 0 || num == "" || ($.trim(num)).length == 0)return;
obj.value = toNum(num);
}
/**
* 转换成2位小数形式的字符串格式,返是字符串
* @param {Object} num
* @return {TypeName}
*/
function toNum(num){
var tem = new Number(num);
var num2 = tem.toFixed(2);
return num2;
}
/**
* 验证是否数字,可以为空串,输入项清空并得到焦点
* @param {Object} obj
* @param {Object} msg
* @return {TypeName}
*/
function numNullValidtae(obj,msg){
var e = window.event;
if(e.propertyName != 'value')return;
var num = obj.value;
if(num == "" || isNum(num)){
return;
}
else{
top.Dialog.alert("[" + msg + "]只能是数字");
obj.value="";
obj.focus();
}
}
/**
* 验证是否数字(小数或整数)
* @param {Object} num
* @return {TypeName}
*/
function isNum(num){
var reg = /^-?\d+\.{0,}\d{0,}$/;
if (!reg.exec(num)) {
return false;
}
return true;
}
/**
* 验证数字,只能是整型或"",否则清空表单项并得到焦点
* @param {Object} obj
* @param {Object} msg
*/
function valiInt(obj,msg){
var reg = /^-?\d+\.{0,}\d{0,}$/;
var val = obj.value;
if (!reg.exec(val)) {
alert("["+msg+"] 只能为整形数字或空!");
obj.value="";
obj.focus();
}
}
/**
* 小数精度乘法,结果转换成两位小数形式表式
* @param {Object} arg1
* @param {Object} arg2
* @return {TypeName}
*/
function accMul(arg1,arg2){
var m=0,s1=arg1.toString(),s2=arg2.toString();
try{m+=s1.split(".")[1].length}catch(e){}
try{m+=s2.split(".")[1].length}catch(e){}
return (Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)).toFixed(2);
}
/**
* ===================================================
* table 增删
* ===================================================
*/
/**
* 新增加一行(注意第一行有时做为表头)
* @param {Object} tableId 操作table的ID
* @param {Object} maxRc 最大行数,为0时,不限制行数
* @return {TypeName}
*/
function f_addRow(tableId,maxRc) {
var tbl = document.getElementById(tableId).tBodies[0];
var rc = tbl.rows.length;
if(maxRc != 0 && rc >= maxRc){
alert("不能再添加行,只允许有"+(maxRc - 1)+"行");
return;
}
try {
var newNode = tbl.rows[rc-1].cloneNode(true);
f_clearInputs(newNode);
tbl.appendChild(newNode);
}
catch(e) {
alert(e.message);
}
}
/**
* 删除行,最少剩余行数(注意第一行有时做为表头)
* @param {Object} tableId
* @param {Object} leastRc 最小行数
* @return {TypeName}
*/
function f_delRow(tableId,leastRc) {
var tbl = document.getElementById(tableId).tBodies[0];
var index = tbl.rows.length;
if(index <= leastRc){
alert("不能删除,必须保留一行");
return;
}
tbl.deleteRow(index - 1);
}
//清除表单数据
function f_clearInputs(p_node) {
var i, elm, elements;
elements = p_node.getElementsByTagName('input');
for( i=0, elm; elm=elements.item(i++); )
{
if (elm.getAttribute('type') == "text")
{
elm.value = '';
}
}
elements = p_node.getElementsByTagName('select');
for( i=0, elm; elm=elements.item(i++); )
{
elm.options.selectedIndex=0;
}
}
*
* uur UI框架通用程序
* 使用需加入jquery 1.4+
* jslfl
*/
/**
* 返回上一操作页面
*/
function returnPrevious(){
history.go(-1);
}
/**
* 直接连接URL
* @param {Object} url
*/
function toUrl(url){
if(url == null || url == ""){
return;
}
location.href = url;
}
/**
* 将连接返回到frame中
* @param {Object} url 请求连接
* @param {Object} frameid frame的id
*/
function toFrame(url,frameid){
$("#" + frameid).attr("src",url);
}
/**
* 刷新本页面
*/
function refresh(){
location.reload();
}
/**
* 刷新父页面
*/
function refreshParent(){
parent.location.reload();
}
/**
* 把下拉列表选项的文本赋值给文本框
* @param {Object} id 下拉列表的ID
* @param {Object} name 文本框的ID
*/
function selTextId2Name(id,name){
$("#" + name).val($("#" + id).attr("relText"));
}
/**
* 删除一条数据
* @param {Object} url
*/
function delOne(url){
top.Dialog.confirm("数据删除后不能恢复,确认要删除 1 条选中数据吗?",function(){location.href = url});
}
/**
*删除多项
* 参数追加到请求后面
**/
function delMultiple(url) {
var vals = "";
var cont = 0;//选中的个数
$("#listData input:checked").each(function(){
if($(this).attr("checked")){
cont ++;
vals += $(this).val() + ",";
}
})
if(cont == 0){
top.Dialog.alert("请选择要删除的对象");
return;
}else if(cont > 0 && vals.length >1){
vals = vals.substring(0,vals.length-1);
top.Dialog.confirm("数据删除后不能恢复,确认要删除 " + cont + " 条选中数据吗?",function(){location.href = url + vals});
}else{
return;
}
}
/**
*多项失效
* 参数追加到请求后面
**/
function invalidMultiple(url) {
var vals = "";
var cont = 0;//选中的个数
$("#listData input:checked").each(function(){
if($(this).attr("checked")){
cont ++;
vals += $(this).val() + ",";
}
})
if(cont == 0){
top.Dialog.alert("请选择要操作的对象");
return;
}else if(cont > 0 && vals.length >1){
vals = vals.substring(0,vals.length-1);
top.Dialog.confirm("数据 失效 后可以通过[ 启用 ]操作恢复,确认要失效 " + cont + " 条选中数据吗?",function(){location.href = url + vals});
}else{
return;
}
}
/**
* 启用多项数据
* 参数追加到请求后面
* @param {Object} url
*/
function usingMultiple(url) {
var vals = "";
var cont = 0;//选中的个数
$("#listData input:checked").each(function(){
if($(this).attr("checked")){
cont ++;
vals += $(this).val() + ",";
}
})
if(cont == 0){
top.Dialog.alert("请选择要操作的对象");
return;
}else if(cont > 0 && vals.length >1){
vals = vals.substring(0,vals.length-1);
top.Dialog.confirm("确认要启用 " + cont + " 条选中数据吗?",function(){location.href = url + vals});
}else{
return;
}
}
/**
* 编辑数据项
* 参数追加到请求后面
* @param {Object} url
*/
function editOne(url) {
var vals = "";
var cont = 0;//选中的个数
$("#listData input:checked").each(function(){
if($(this).attr("checked")){
cont ++;
vals += $(this).val() + ",";
}
})
if(cont == 0){
top.Dialog.alert("请选择要修改的对象");
return;
}else if(cont > 1){
top.Dialog.alert("对不起,一次只能修改一条数据");
return;
}else if(cont == 1 && vals.length >1){
vals = vals.substring(0,vals.length-1);
location.href = url + vals;
}else{
return;
}
}
/**
* 查看数据项
* 参数追加到请求后面
* @param {Object} url
*/
function viewOne(url) {
var vals = "";
var cont = 0;//选中的个数
$("#listData input:checked").each(function(){
if($(this).attr("checked")){
cont ++;
vals += $(this).val() + ",";
}
})
if(cont == 0){
top.Dialog.alert("请选择要查看的对象");
return;
}else if(cont > 1){
top.Dialog.alert("对不起,一次只能查看一条数据");
return;
}else if(cont == 1 && vals.length >1){
vals = vals.substring(0,vals.length-1);
location.href = url + vals;
}else{
return;
}
}
/**
* dAjax('/base/code/edit.do','codeid=11&codename=22','json',ok);
* @param {Object} url 访问地址(eg,'/base/code/edit.do'
* @param {Object} params 访问参数(eg,'codeid=11&codename=22'
* @param {Object} returnType 返回类型('html','xml','json','text'
* @param {Object} func 返回执行函数(如,ok,原型为ok(data)
*/
function dAjax(url,params,returnType, func){
$.ajax({
type: "POST",
url: url,
dataType:returnType,
data: params,
success: func
});
}
/**================================================
*
* 数据验证
*
* ================================================*/
/**
* 验证输入为数字,只能是整数或小数或空
* @param {Object} id 表单项ID
* @param {Object} msg 表单项名称
* @return {TypeName}
*/
function isNullDigit(id, msg) {
var reg = /^-?\d+\.{0,}\d{0,}$/;
var val = document.getElementById(id).value;
val = $.trim(val);
if(val == "" || val.length < 1)
return true;
if (!reg.exec(val)) {
document.getElementById(id).value = "";
top.Dialog.alert("["+msg+"] 只能是数字(整数或小数)!");
return false;
}
return true;
}
/**
* 输入表单项格式化数字,返回2位小数格式
* @param {Object} obj 输入表单项
* @return {TypeName}
*/
function formatNum(obj){
var num = obj.value;
if(num.length == 0 || num == "" || ($.trim(num)).length == 0)return;
obj.value = toNum(num);
}
/**
* 转换成2位小数形式的字符串格式,返是字符串
* @param {Object} num
* @return {TypeName}
*/
function toNum(num){
var tem = new Number(num);
var num2 = tem.toFixed(2);
return num2;
}
/**
* 验证是否数字,可以为空串,输入项清空并得到焦点
* @param {Object} obj
* @param {Object} msg
* @return {TypeName}
*/
function numNullValidtae(obj,msg){
var e = window.event;
if(e.propertyName != 'value')return;
var num = obj.value;
if(num == "" || isNum(num)){
return;
}
else{
top.Dialog.alert("[" + msg + "]只能是数字");
obj.value="";
obj.focus();
}
}
/**
* 验证是否数字(小数或整数)
* @param {Object} num
* @return {TypeName}
*/
function isNum(num){
var reg = /^-?\d+\.{0,}\d{0,}$/;
if (!reg.exec(num)) {
return false;
}
return true;
}
/**
* 验证数字,只能是整型或"",否则清空表单项并得到焦点
* @param {Object} obj
* @param {Object} msg
*/
function valiInt(obj,msg){
var reg = /^-?\d+\.{0,}\d{0,}$/;
var val = obj.value;
if (!reg.exec(val)) {
alert("["+msg+"] 只能为整形数字或空!");
obj.value="";
obj.focus();
}
}
/**
* 小数精度乘法,结果转换成两位小数形式表式
* @param {Object} arg1
* @param {Object} arg2
* @return {TypeName}
*/
function accMul(arg1,arg2){
var m=0,s1=arg1.toString(),s2=arg2.toString();
try{m+=s1.split(".")[1].length}catch(e){}
try{m+=s2.split(".")[1].length}catch(e){}
return (Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)).toFixed(2);
}
/**
* ===================================================
* table 增删
* ===================================================
*/
/**
* 新增加一行(注意第一行有时做为表头)
* @param {Object} tableId 操作table的ID
* @param {Object} maxRc 最大行数,为0时,不限制行数
* @return {TypeName}
*/
function f_addRow(tableId,maxRc) {
var tbl = document.getElementById(tableId).tBodies[0];
var rc = tbl.rows.length;
if(maxRc != 0 && rc >= maxRc){
alert("不能再添加行,只允许有"+(maxRc - 1)+"行");
return;
}
try {
var newNode = tbl.rows[rc-1].cloneNode(true);
f_clearInputs(newNode);
tbl.appendChild(newNode);
}
catch(e) {
alert(e.message);
}
}
/**
* 删除行,最少剩余行数(注意第一行有时做为表头)
* @param {Object} tableId
* @param {Object} leastRc 最小行数
* @return {TypeName}
*/
function f_delRow(tableId,leastRc) {
var tbl = document.getElementById(tableId).tBodies[0];
var index = tbl.rows.length;
if(index <= leastRc){
alert("不能删除,必须保留一行");
return;
}
tbl.deleteRow(index - 1);
}
//清除表单数据
function f_clearInputs(p_node) {
var i, elm, elements;
elements = p_node.getElementsByTagName('input');
for( i=0, elm; elm=elements.item(i++); )
{
if (elm.getAttribute('type') == "text")
{
elm.value = '';
}
}
elements = p_node.getElementsByTagName('select');
for( i=0, elm; elm=elements.item(i++); )
{
elm.options.selectedIndex=0;
}
}
- mycommon.7z (2.7 KB)
- 下载次数: 6
发表评论
-
hibernate集合映射inverse和cascade详解
2013-05-04 12:14 949网上转载,出处不详 1、到底在哪用cascade=" ... -
js取el中的map值及js replaceAll实现
2013-04-10 15:55 2263<% Map map = new HashMap(); ... -
Struts2返回结果类型
2013-04-03 15:35 969转自:http://blog.csdn.net/sleepin ... -
Hibernate实体注解
2013-04-03 15:29 1112转自:http://blog.csdn.net/sleepin ... -
dom事件与setTimeout
2013-03-15 15:11 1463<html> <head> ... -
js数组操作
2013-03-12 14:06 1119原文: http://www.blogjava.net/zks ... -
eclipse jee + tomcat记要
2013-03-08 15:37 2777今天重新下了个eclipse-jee-helios-SR2-w ... -
Hibernate主键生成策略
2013-01-28 15:50 8651) assigned 主键由外部程 ... -
tomcat调整内存大小
2012-11-14 14:15 1009Tomcat6使用安装版本进行安装后,使用内存的调整无法利用修 ... -
jstl与 jsp脚本间的数据传递
2012-11-08 13:34 1048可能这个标题没有确切表达我的意思,直接说用处 后台把一个对象, ... -
iframe 框架自适应高度
2012-11-07 17:33 12621. 经典代码 iFrame 自适应高度,在IE6/IE7/I ... -
spring RMI rmoting远程服务实例
2012-10-25 14:39 1387还没有测试,先留在这儿,转自http://www.walker ... -
web前端学习资源
2012-10-19 09:11 1042CSS彻底研究视频教程(全23讲) 本套视频教程配合《CSS ... -
JS字符串函数
2012-09-11 14:31 840http://www.cnblogs.com/qfb620/a ... -
javascript 20种小技巧
2012-08-16 16:59 984原文地址: http://www.iiwn ... -
hibernate条件查询
2012-08-15 10:43 12311. Criteria criteria = getSessi ... -
一个分号引发的"血案"
2012-08-14 16:29 1200我用hibernate的SQLQuery做查询,sql是拼出来 ... -
struts 文件下载
2012-07-19 11:17 918以下代码是struts1中的action中 一般下载有三种方式 ... -
struts1 forward 请求带参数
2012-07-18 10:40 1808如果action配置中,加了scope="reque ... -
struts1 初始化
2012-07-18 10:08 1466好久不用这了,现在项目用到,回忆下struts1的基础 一 ...
相关推荐
标题中的“以前项目用到的一些东西,认为不好的不要下载”表明这可能是一个包含作者过去项目中使用过的各种工具和技术的资源集合。这些资源可能包括代码片段、库、配置文件等,但作者提示如果对某些内容有疑虑或认为...
【标题】:“公司以前项目(类似网购的项目)”揭示了一个已经实施完成的电商系统,这个项目具有在线购物的功能,并且可能包括用户管理、商品展示、订单处理等常见模块。 【描述】:该项目的描述提供了关于如何启动...
我们交换数组可以实现元素上下移动了,这个效果我们在表格或以前排序算法中都会用到,下面来看一个JavaScript下实现交换数组元素上下移动例子 在写项目的时候,要实现一个数组记录上下移动的示例。写起来也没有没...
【标题】中的“毕业设计&课设--这是以前毕业设计的一个项目 java写在线学习网站”表明这个压缩包文件包含了一个基于Java技术实现的在线学习平台的项目。这通常包括前端用户界面、后端服务器逻辑以及可能的数据存储和...
【标题】:“这是以前毕业设计的一个项目 java写在线学习网站.zip”揭示了这是一个基于Java编程语言的毕业设计项目,主要用于创建一个在线学习平台。在线学习网站通常包含用户管理、课程管理、视频播放、讨论区、...
小弟是来求分的. 本资源是我们以前项目中常用的JS判断函数,在页面引用后直接可调用.但是在2.0后大家都用验证控件了,不过个人觉得还是和验证控件有些不同的。
Vue.js 是一款轻量级的前端...虽然Vue-resource.js以前是一个常用的解决方案,但现在已被Axios取代,因为Axios提供了更多的特性和更好的性能。在实际开发中,掌握这些工具的使用将极大地提升你的Vue项目开发效率。
所有章节都带有大量的代码实例,这不仅是为了便于理解和模仿,也是为了随时可以用到实际项目中,做到即学即用。 由于本书选择以ECMAScript 5为标准,意味着不支持许多老式浏览器,其中最主要的就是IE6-8。如果用一句...
JavaScript是Web开发中不可或缺的一部分,尤其在前端领域更是发挥着核心作用。"JavaScript资源大全中文版"是一个集合了各种JavaScript工具、库、框架和资源的综合指南,旨在帮助开发者更高效地进行JavaScript开发。...
Alga.js 包含了一系列常用的JavaScript实用函数,例如数据操作、字符串处理、数组处理、日期和时间操作等。这些函数经过优化,性能出色,可以替代或增强原生JavaScript方法,提高开发效率。例如,它可能提供了更便捷...
为了积分把自己以前做的小项目发了上来。” 这段描述暗示了该项目可能是作者个人学习或实践的作品,并非商业级别的大型系统。作者可能通过分享项目来获取社区的积分或者反馈,这在开源社区中是常见的行为。这也意味...
例如,我在 XX 公司做了 XX 外汇保证金交易平台,客户是 XX 银行,主要完成了挂盘,实盘成交,保证金杠杆成交等功能,数据库是 Oracle,前台用到 JS 等技术,后台用到 Java 的 SSH,几个人块。重点突出背景,技术,...
项目要用到Webview和js交互,查了查以前的项目感觉还是有必要整理下的。 简单描述下项目中用到的地方,比如说在web页需要...首先需要初始化WebView以及设置支持JavaScript,常用的配置属性有一下几种,可以在项目中根
在Node.js开发中,实现这样的功能通常会用到以下几个关键知识点: 1. **Node.js基础**:Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行开发。这个项目显然利用了...
在这个项目中,我们可以看到几个关键的组成部分: 1. **index.html**:这是网站的主页面文件,它包含了HTML标记,定义了页面结构和内容。在这个文件中,会引用JavaScript代码和CSS样式表来实现焦点图的效果。`...
标题中的“以前做毕业设计时,使用Python做的一个简单的Blog”揭示了这个项目是一个基于Python的个人博客系统,这是初学者常用来练习Web开发技能的一个常见项目。在Python Web开发中,通常会用到框架如Flask或Django...
标题 "P_Rex-JS-Trivia-" 暗示这是一个基于JavaScript的项目,可能是一个在线琐事游戏,其中“P_Rex”可能是游戏中的角色或主题。开发者提到他们很久以前就开始制作这个游戏,并计划很快恢复开发。这个项目是通过...
这是以前学习用到过的资料,现在分享给大家,希望对大家的学习有所帮助。 ######HTML、CSS和JavaScript实训教.pdf