getElementById获取不到对象 1C

求大侠指点,为什么以下代码 getElementById获取不到 id='myshow'的div?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>

<script language="javascript"  type="text/javascript">
 var el=document.getElementById("myshow");
 el.innerHTML="dfsdfdf"
</script>
</head>

<body>
 <div id="myshow"></div>
</body>
</html> 

7个回答

图片说明
错误提示:不能设置null的innerHTML属性
为什么没有得到div元素呢?
因为这段JS代码运行时,浏览器还没解析后面的代码,DOM树中还没有那个div。
可以这样

 window.onload = function(){
 var el=document.getElementById("myshow");
 el.innerHTML="dfsdfdf"
};

或者把标签放到<div>后面</p> <p>看楼主应该是个新手,你先查一下浏览器解析网页的顺序的相关资料<br> 建议你先看一下《JavaScript从入门到精通》之类的入门书籍,再看看《JavaScript高级程序设计》</p>

把 script 标签 放到 div 后面

放onload事件里面,或者将你的代码放到dom对象下,你的代码执行时dom还没有生成,放下面就没事了

 <script language="javascript"  type="text/javascript">
window.onload=function(){
 var el=document.getElementById("myshow");
 el.innerHTML="dfsdfdf"
 }
</script>

DOM加载顺序
1.解析HTML结构。
2.加载外部脚本和样式表文件。
3.解析并执行脚本代码。
4.构造HTML DOM模型。
5.加载图片等外部文件。
6.页面加载完毕。
加载顺序实例:

 <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Title</title>
    <style type="text/css">
        body
        {
            font-sie: 12px;
        }
    </style>
    <link href="style.css" rel="stylesheet" type="text/css" media="all" />
    <script src="js.js" type="text/javascript"></script>
</head>
<body>
    <div>
        <script type="text/javascript">
            function f1() { }
        </script>
        <img src="1.gif" />
    </div>
    <script type="text/javascript">
        function f2() { }
    </script>
</body>
</html>

html → head → title → #text(网页标题) → style → 加载样式 → 解析样式 → link → 加载外部样式表文件 → 解析外部样式表 → script → 加载外部脚本文件 → 解析外部脚本文件 → 执行外部脚本 → body → div → script → 加载脚本 → 解析脚本 → 执行脚本 → img → script → 加载脚本 → 解析脚本 → 执行脚本 → 加载外部图像文件 → 页面初始化完毕

这段JS代码运行时,浏览器还没解析后面的代码,DOM树中还没有那个div,把 script 标签 放到 div 后面

事实上已经取到了,只不过你的js代码没有触发,可以将那段代码写在一个function里,然后用window.onload,或者写个button click事件触发它即可。

脚本先执行的,标签后载入,改下脚本位置就可以了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
getElementById无法获取JS自动生成的模块
简单来讲,就是一张表格,里面有很多行,其中第一行是直接写死在代码中的,其余的各行是用JS生成的,然后第一行中的数据的ID为line0.1,line0.2,第二行就是line1.1,line1.2,类型都是input,其他的以此类推,现在的问题是: 在提交的时候调用一个函数,onsubmit="test()",test函数体中调用了getElementId方法,get line0.1,line0.2时没有问题,能get到对应的对象,但是get line1.1,line1.2的时候就为Null,这和由JS生成有什么关系吗?(页面加载的时候就已经加载那些行,应该不存在说调用getElementById的时候还未生成) 求解原因是什么,或者有什么好的方法可以发现问题所在?谢谢!
如何在Vue2.0的mounted钩子函数里获取指定dom对象?
我使用原生js的document.getElementById()和Vue的ref属性均获取不到指定dom对象 ![使用原生js的html代码:](https://img-ask.csdn.net/upload/201710/31/1509417422_410474.png) ![js代码:](https://img-ask.csdn.net/upload/201710/31/1509417441_477280.png) ![页面显示](https://img-ask.csdn.net/upload/201710/31/1509417460_68487.png) 使用Vue2.0的ref属性 ![html代码:](https://img-ask.csdn.net/upload/201710/31/1509417700_300550.png) ![js代码:](https://img-ask.csdn.net/upload/201710/31/1509417714_685933.png) ![页面显示](https://img-ask.csdn.net/upload/201710/31/1509417739_391307.png) 不知道问题出在哪里,请各位大神帮帮忙!
HELP!!!!Echarts图表无法显示数据了!!
我是想实现一个功能用Echarts显示数据库里面的帖子标题和点击量数据。后台做完了到前台却一直不显示数据,调了很长时间实在没办法了。不知道是哪里的问题。 目前显示的效果是这样的,下面我把后台到前台的代码都列出来。 ![图片说明](https://img-ask.csdn.net/upload/202002/29/1582957078_107415.png) 然后这个是浏览器控制台输出的从后台获取到的json格式数据 ![图片说明](https://img-ask.csdn.net/upload/202002/29/1582957097_336679.png) TieziMapper.xml ``` <select id="getListEchart" resultMap="BaseResultMap"> select biaoti,dianji from tiezi </select> ``` TieziDao.java ``` List<Tiezi> getListEchart(); ``` TieziService.java ``` public List<Tiezi> getListEchart(){ return tieziDao.getListEchart(); } ``` TieziController.java ``` @RequestMapping("listEchart") public Object ListEchart(){ List<Tiezi> list = tieziService.getListEchart(); return list; } ``` Main.jsp(这里的target='right'使用的IFrame框架让其固定显示) ``` <h2> <span class="icon-pencil-square-o"></span> 图表 </h2> <ul> <li> <a href='<%=path %>/admin/listEchart.jsp' target='right'> <span class="icon-caret-right"></span>帖子点击量统计</a> </li> </ul> ``` listEchart.jsp ``` <script> // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById('main')); // 指定图表的配置项和数据 var option={ title:{ // 图表标题 text:'帖子点击数统计表' }, tooltip:{ trigger:'axis',//坐标轴触发提示框 }, legend:{//图表上方的类别显示 show:true, data:['访问量'] }, color:[ '#FF3333', ], xAxis:{//x轴 name:'名称', type:'category', data:mingchengs }, yAxis:{//y轴 name:'访问量', data:fangwenliangs, type:'value' }, series:[//系列(内容)列表 { name:'访问量', type:'bar', data:fangwenliangs, } ] }; myChart.showLoading();//数据加载完之前显示一段Loading动画 var mingchengs = []; var fangwenliangs = []; $.ajax({ type:"post",//post请求方式 url:"<%=request.getContextPath()%>/listEchart", data:{}, dataType:"json", success : function(result) { //请求成功时执行该函数内容,result即为服务器返回的json对象 if (result != null && result.length > 0) { for(var i=0;i<result.length;i++){ mingchengs.push(result[i].biaoti); fangwenliangs.push(result[i].dianji); console.log(mingchengs); console.log(fangwenliangs); } myChart.hideLoading(); //隐藏加载动画 } else { //返回的数据为空时显示提示信息 alert("图表请求数据为空,可能服务器暂未录入数据,您可以稍后再试!"); myChart.hideLoading(); } }, error : function(errorMsg) { //请求失败时执行该函数 alert("图表请求数据失败,可能是服务器开小差了"); myChart.hideLoading(); } } ) myChart.setOption(option); </script> ```
获取IE输入input标签的输入内容,获得doc2文档GetgetElementById为什么为空?
# 获得的Docment文档后无法获取指定ID元素怎么办 32位Dll注入获取Internet Explorer_Server,替换了窗口之后获得Docment2使用GetelementByid 获得指定元素对象为空是为什么 ``` CComPtr<IHTMLDocument2> GetDocmentInterface(HWND hwnd) { CoInitialize(NULL); HINSTANCE hInst = ::LoadLibrary(_T("OLEACC.DLL")); CComPtr<IHTMLDocument2> pDoc2 = NULL; if (hInst != NULL) { printfMessage("加载dll成功"); if (hwnd != NULL) { CComPtr<IHTMLDocument> spDoc = NULL; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT"));//定义一个新的窗口消息 SendMessageTimeout(hwnd, nMsg, 0L, 0L, SMTO_BLOCK, 2000, (PDWORD_PTR)&lRes);//将指定的消息发送到一个或多个窗口 LPFNOBJECTFROMLRESULT pfObjectFromLresult = (LPFNOBJECTFROMLRESULT)::GetProcAddress(hInst, "ObjectFromLresult"); if (pfObjectFromLresult != NULL) printfMessage("窗口替换成功"); pfObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (void**)&pDoc2); } ::FreeLibrary(hInst); } else printfMessage("获取文档失败"); if (pDoc2 != NULL) { printfMessage("获取文档成功"); } return pDoc2; } void GetNameEdit(HWND hwnd) { CComPtr<IHTMLDocument2>&pDoc2 = GetDocmentInterface(hwnd); if (pDoc2) { printfMessage("doc2不为空"); CComQIPtr<IHTMLDocument3> doc3 = pDoc2; CComPtr<IHTMLElement> spElement; if (doc3) { printfMessage("doc3不为空"); HRESULT hr; hr= doc3->getElementById(L"pw_box", &spElement); char str[20]; sprintf(str, "%#x", hr); printfMessage(str); if (spElement!=NULL) { int Error = GetLastError(); printfMessage("Ele错误码2:", Error); printfMessage("Ele不为空"); ```
如何获取同一个form表单里的对象的value值呢
``` <input type="hidden" id="district<%=i%>" name="district" > <script> document.getElementById("district"+i).value=document.getElementById("shuru"+i).value </script> ``` 如题,我想将hidden里的value 设置为上面id为shuru的的值 ``` <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="Db.Db"%> <%@page import="java.text.SimpleDateFormat"%> <%@ page import="java.sql.*"%> <%@ page import="java.util.Date"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!-- 修改前--> <% request.setCharacterEncoding("utf-8"); String uaddr = null; int uid = 0; String uname = request.getParameter("uname"); String[] strgid = request.getParameterValues("addOrders"); Connection conn = null; Statement stmt = null; Statement stmt1 = null; ResultSet rs = null; ResultSet rs1 = null; conn = Db.getconn(); stmt = conn.createStatement(); stmt1 = conn.createStatement(); System.out.println(uname); rs1 = stmt1.executeQuery("select * from user where uname = '"+ uname + "' "); if (rs1.next()) { uaddr = rs1.getString("uaddr"); uid = rs1.getInt("uid"); } %> <% SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String nowTime = sdf.format(new Date()); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>购物车</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> <body> <form method="post" action="servlet/AddOrdersServlet" name="numSender"> <input type="hidden" name="uid" value="<%=uid%>"> <input type="hidden" name="uname" value="<%=uname%>"> <input type="hidden" name="oaddr" value="<%=uaddr%>"> <input type="hidden" name="dealtime" value="<%=nowTime%>"> <!-----script放到循环外-------> <script type="text/javascript"> function jianC(i,p1) { /*定义变量K,用商品数量输入框里面的数字赋值*/ var k =document.getElementById("shuru"+i);//获取数量输入控件 var v=parseInt(k.value,10); v--; /*点击-号按钮会递减商品价格*/ if (v < 1) { alert("亲,商品数量不能小于1!"); return//超限退出 } k.value=v; k.setAttribute('sum',v*p1)//将这个物品的小计放到自定义属性sum中,方便计算总价 setTotal()//重新设置总价钱 } function adddC(i,p1) { /*点击+号按钮会递加商品数量*/ var k =document.getElementById("shuru"+i);//获取数量输入控件 var v=parseInt(k.value,10); v++; if (v > 99) { alert("您所选择的数量已经到达库存上限!"); return//超限退出 } k.value=v; k.setAttribute('sum',v*p1)//将这个物品的小计放到自定义属性sum中,方便计算总价 setTotal()//重新设置总价钱 } function setTotal(){//设置总价 var o=document.getElementsByName('init_num');//获取数量输入框 var sum=0; for(var i=0;i<o.length;i++)sum+=parseInt(o[i].getAttribute('sum')||0) document.getElementById("cost").value = sum + "元" } function sendNum() { alert("xxxxxx"); document.getElementById("district"+i).value=document.getElementById("shuru"+i).value; alert("aaaaaaaaaaa"); } </script> <table border=1 align="center"> <tr> <td colspan="4" align="center">购物车</td> </tr> <tr> <td align="center">商品</td> <td align="center">数量</td> <td align="center" colspan="1">操作</td> </tr> <% for (int i = 0; i < strgid.length; i++) { int gid = Integer.parseInt(strgid[i]); rs = stmt.executeQuery("select * from goods where gid =" + gid); if (rs.next()) { String strgprice = rs.getString("gprice"); Double p =Double.parseDouble(strgprice); // System.out.println("p="+p); %> <!-- ss --> <tr> <td><img src="<%=rs.getString("gpicture")%>">&nbsp;<%=rs.getString("gname")%></td> <td><input type="button" id="jian" onClick="jianC(<%=i%>,<%=p%>)" value="-"><!-----传入循环i和单价-------> <input id="shuru<%=i%>" name="init_num" class="input_text" type="text" value="0" size="3"><!-----id连接上i变为唯一-------> <input type="hidden" id="district<%=i%>" name="district" > <script> document.getElementById("district"+i).value=document.getElementById("shuru"+i).value </script> <input type="button" id="addd" onClick="adddC(<%=i%>,<%=p%>)" value="+"><!-----传入循环i和单价-------></td> <td> <input type="checkbox" name="gid" value="<%=gid %>"> </td> </tr> <% } } rs.close(); rs1.close(); stmt.close(); stmt1.close(); conn.close(); %> <tr> <td colspan="4" align="center"> 总价:<input id="cost" class="input_text" type="text" value="0" size="3" value="0"></td> </tr> <tr> <td colspan="5" align="center"> <button id="buy_anniu" type="submit" onClick="sendNum()">提交</button> <button type="reset">重置</button> </td> </tr> </table> </form> </body> </html> ```
webwork的文件上传总是得不到文件对象
<p>xml</p> <pre name="code" class="xml">&lt;interceptor name="fileupload" class="com.opensymphony.webwork.interceptor.FileUploadInterceptor"/&gt; &lt;interceptor-stack name="uploadStack"&gt; &lt;interceptor-ref name="fileupload"/&gt; &lt;interceptor-ref name="defaultStack"/&gt; &lt;/interceptor-stack&gt; &lt;package name="fileUpload" namespace="/fileUpload" extends="webwork-default"&gt; &lt;default-interceptor-ref name="uploadStack" /&gt; &lt;action name="fileUpload" class="com.casetrial.fileUpload.UploadAction"&gt; &lt;result name="success"&gt;/pages/appealSituation/fileUploadIndex.jsp&lt;/result&gt; &lt;/action&gt; &lt;/package&gt;</pre> <p> action</p> <pre name="code" class="java">public class UploadAction extends ActionSupport { private File[] files; //多个文件对象数组 private String[] filesFileName; //文件对应的真实文件名 单个文件上传时不需要此属性定义 //多文件上传时 file.getName() 无效,取得不是真实的文件名,而是upload_xxx.tmp public String execute(){ System.out.println(files==null); if (files != null){ for (int i = 0; i &lt; files.length; i++){ File file = files[i]; String fileName = filesFileName[i]; System.out.print(" File list: "); System.out.print(" name:=" + file.getName() + " "); System.out.print(" fileName:=" + fileName + " "); System.out.print(" path:=" + file.getPath() + " "); System.out.print(" "); FileOutputStream outputStream = null; FileInputStream fileIn = null; ResourceBundle rb = ResourceBundle.getBundle("config"); String fileDir = rb.getString("saveDir")+File.separator; String filePath = fileDir+fileName; File f = new File(fileDir); f.mkdirs(); try { outputStream = new FileOutputStream(filePath); fileIn = new FileInputStream(file); } catch (FileNotFoundException e) { e.printStackTrace(); } byte[] buffer = new byte[1024]; int len; try { while((len=fileIn.read(buffer))&gt;0){ outputStream.write(buffer,0,len); } fileIn.close(); outputStream.close(); } catch (IOException e) { e.printStackTrace(); } System.out.println("uploadfile name="+fileName); } }else{ System.out.println("file is null!"); } return SUCCESS; } public String[] getFilesFileName(){ return filesFileName; } public void setFilesFileName(String[] filesFileName){ this.filesFileName = filesFileName; } public File[] getFiles(){ return files; } public void setFiles(File[] files){ this.files = files; } /**//** * 获取session对象 * @return */ public HttpSession getSession(){ return getRequest().getSession(); } /**//** * 获取request对象 * * @return httpServletRequest */ public HttpServletRequest getRequest(){ return ServletActionContext.getRequest(); } /**//** * 获取response对象 * * @return HttpServletResponse */ public HttpServletResponse getResponse(){ return ServletActionContext.getResponse(); } /**//** * 获取ServletContext对象 * * @return ServletContext */ public ServletContext getContext(){ return ServletActionContext.getServletContext(); } /**//** * 获取ActionContext * * @return */ public ActionContext getActionContext(){ return ActionContext.getContext(); } /**//** * 获取参数map * * @return */ public Map getParameterMap(){ return getActionContext().getSession(); } /**//** * 获取输入参数名字对应的值 * * @param name * @return */ public String getParameter(String name){ return (String) getParameterMap().get(name); } }</pre> <p> </p> <p>页面</p> <pre name="code" class="html">&lt;html&gt; &lt;head&gt; &lt;/head&gt; &lt;script language="Javascript" charset="utf-8"&gt; function addAccessory(){ var accessoryListObj = document.getElementById("accessoryList"); var accObj = document.createElement("span"); var spanId = (new Date()).getTime(); var spanHTML = " &lt;input name='files' type='file' /&gt;&lt;input type='button' value='删除' onclick=deleteFile('" + spanId + "')&gt;&lt;br&gt;"; accObj.setAttribute("id", spanId); accObj.setAttribute("width", "100px"); accObj.innerHTML = spanHTML; accessoryListObj.appendChild(accObj); } function deleteFile(fileId){ var accessoryListObj = document.getElementById("accessoryList"); var accObj = document.getElementById(fileId); accessoryListObj.removeChild(accObj); } &lt;/script&gt; &lt;body&gt; &lt;form action="../fileUpload/fileUpload.action" enctype="multipart/form-data" method="post"&gt; &lt;table id="DataTable"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td class="style2" colspan="4"&gt; &lt;strong&gt;附件: &lt;/strong&gt; &lt;span title="增加附件" onclick="addAccessory()" style="cursor:pointer;color:blue;"&gt;&lt;strong&gt;[添加附件]&lt;/strong&gt; &lt;/span&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td colspan="4" style="width:100%;height:300px;"&gt; &lt;div id="accessoryList" style="overflow-x:auto;overflow-y:auto;width:1000px;height:100%;"&gt; &amp;nbsp; &lt;input type="file" name="files"&gt; &lt;/div&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td colspan="4" style="width:100%;height:15px;" align="center"&gt; &lt;input type="Submit" value="提交"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt; </pre> <p> </p> <p>一运行总是会发现files对象为Null,就得不到所要上传的东西,大家看看是错在哪儿了,我看了半天找不出来</p>
htmlunit+jsoup爬取知乎视频,获取的html字符串中缺少视频信息,如何解决?
大神帮忙看一下 今天使用htmlunit+jsoup爬取知乎网站的视频,发现爬取到的html中缺少视频的信息,无法进行下一步了 知乎视频网址:https://video.zhihu.com/video/1157743087110549504?autoplay=false&useMSE= 浏览器检查中查看到的视频信息 ![图片说明](https://img-ask.csdn.net/upload/201910/12/1570872018_377176.png) java代码 ``` @Test public void testttt() { final WebClient webClient = new WebClient(BrowserVersion.CHROME);//新建一个模拟谷歌Chrome浏览器的浏览器客户端对象 webClient.getOptions().setThrowExceptionOnScriptError(false);//当JS执行出错的时候是否抛出异常, 这里选择不需要 webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);//当HTTP的状态非200时是否抛出异常, 这里选择不需要 webClient.getOptions().setActiveXNative(false); webClient.getOptions().setCssEnabled(false);//是否启用CSS, 因为不需要展现页面, 所以不需要启用 webClient.getOptions().setJavaScriptEnabled(true); //很重要,启用JS webClient.setAjaxController(new NicelyResynchronizingAjaxController());//很重要,设置支持AJAX HtmlPage page = null; try { page = webClient.getPage("https://video.zhihu.com/video/1157743087110549504?autoplay=false&useMSE=");//尝试加载上面图片例子给出的网页 // page = webClient.getPage("http://ent.sina.com.cn/film/");//尝试加载上面图片例子给出的网页 } catch (Exception e) { e.printStackTrace(); }finally { webClient.close(); } webClient.waitForBackgroundJavaScript(30000000);//异步JS执行需要耗时,所以这里线程要阻塞30秒,等待异步JS执行结束 String pageXml = page.asXml();//直接将加载完成的页面转换成xml格式的字符串 System.out.println(pageXml); //TODO 下面的代码就是对字符串的操作了,常规的爬虫操作,用到了比较好用的Jsoup库 // Document document = Jsoup.parse(pageXml);//获取html文档 // List<Element> infoListEle = document.getElementById("feedCardContent").getElementsByAttributeValue("class", "feed-card-item");//获取元素节点等 // infoListEle.forEach(element -> { // System.out.println(element.getElementsByTag("h2").first().getElementsByTag("a").text()); // System.out.println(element.getElementsByTag("h2").first().getElementsByTag("a").attr("href")); // }); } ``` 运行程序打印的html如下: ![图片说明](https://img-ask.csdn.net/upload/201910/12/1570872108_470794.png) 有大神遇到过这个问题吗?帮忙看一下
各位大神求js或jq,获取当前对象的iframe父窗口元素
我有个函数,openPragram(obj),在前台调用的时候是openPragram(this),我要获取id为window的div的bs属性,当前的点击事件是写在iframe中,要获取的元素在父div中,父div是未来元素。这种情况要怎么去获取,我已经能获取到这个元素,但不是当前双击事件的父元素,始终都是第一个父div的元素,我要获取当前的 前台父div页面,要获取的元素页面 ``` <ul> <foreach name="rel" item='li'> <switch name="li['ptype']"> <case value="1"><li ondblclick="filewindow(this,1)" pid="{$li['pid']}" href="{$li['paddress']}"><div class='icon_img'><img width="100%" src="__PUBLIC__{$li['pimage']}"></div><div class="icon_font">{$li['pname']}</div></li></case> <case value="9"><li ondblclick="filewindow(this,1)" pid="{$li['pid']}" href="{$li['paddress']}"><div class='icon_img'><img width="100%" src="__PUBLIC__/images/deskicon/folder.png"></div><div class="icon_font">{$li['pname']}</div></li></case> </switch> </foreach> </ul> ``` 前台事件页面 ``` <body> <div class="container"> <div class="system" id="system"> <foreach name="list" item="li"> <li url="{$li['paddress']}" ondblclick="openProgram(this)" pname="{$li['pname']}" pid="{$li['pid']}" href="{$li['paddress']}"> <svg class="icon" aria-hidden="true"> <use xlink:href="#icon-windows"></use> </svg> <div class="name">{$li['pname']}</div> </li> </foreach> </div> </div> </body> ``` 前台未来元素js函数 ``` var window_div='<div id="window_div" zt="0"><div id="window"><div class="window_div_tools"><div class="window_div_nav"><li class="window_div_nav_left" title="后退" onclick="history.back()">&lt;</li><li class="window_div_nav_right" title="前进" onclick="history.go(1)">&gt;</li></div><div id="window_title" class="window_div_tools_left fleft"></div><div class="window_div_tools_right fright"><li class="btn-nomal" id="minimize">-</li><li class="btn-nomal" id="Maximization">◻</li><li id="closewindow" class="btn-danger" onclick=closewindow(this)>&times;</li></div></div><iframe id="window_div_content" name="window_div_content" class="window_div_content" src=""></iframe id="content"><div id="window_div_corner_rightbottom"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-tuodong_icon"></use></svg></div></div></div>'; function filewindow(a,type){ var bsf=uuid(8,16); var parentdiv=$(window_div); var newdiv=parentdiv.attr('bs',bsf); $('#desk').append(newdiv); //判断调用函数的来源 switch(type){ //桌面图标 case 1: //获取应用方法 var url=a.getAttribute('href'); $('[bs="'+bsf+'"] #window_div_content').attr('src',url); //获取应用名 var title=a.lastChild; $('[bs="'+bsf+'"] #window_title').text(title.innerHTML);//把缩略图放到任务栏 var thumbnail=a.getElementsByTagName('img')[0].getAttribute('src')?a.getElementsByTagName('img')[0].getAttribute('src'):'./Public/images/deskicon/1.jpg'; var li=$('.taskbar-left li :last'); li.after('<li bsf='+bsf+' title='+title.innerHTML+' style="margin:0 2px;height:32px;padding-top:6px;border-bottom:2px solid #FFF;"><img src='+thumbnail+' width="25px"></li>'); break; //右键菜单 case 2: //获取应用方法 var url=a.getAttribute('href'); $('[bs="'+bsf+'"] #window_div_content').attr('src',url); //获取应用名 $('[bs="'+bsf+'"] #window_title').text(a.innerHTML); //把缩略图放到任务栏 var li=$('.taskbar-left li :last'); li.after('<li bsf='+bsf+' title='+a.innerHTML+' style="margin:0 2px;height:32px;padding-top:6px;border-bottom:2px solid #FFF;"><img src=./Public/images/deskicon/1.jpg width="25px"></li>'); break; } var div=parentdiv.offset(); parentdiv.css('top',div.top+10+'px'); parentdiv.css('z-index',2100).siblings().css('z-index',100); $('[bsf="'+bsf+'"]').css('background','rgba(255,255,255,0.3').siblings().css('background',''); } ``` 第二个js函数 ``` function openProgram(obj){ // var object=obj; var pid=$(obj).attr('pid'); //程序id var pname=$(obj).attr('pname'); //程序名称 var url=$(obj).attr('href'); //控制器地址 // var div=this.parent.document.getElementById('window_div').getAttribute('bs'); // var div=$(obj).parents('#window_div',window.parent.document).attr('bs'); // var div=window.parent.document.getElementById("window_div").getAttribute('bs'); var div=$('#window_div',parent.document).attr('bs'); //当前窗口的唯一标识 alert(div) $('#window_div_content',window.parent.document).attr('src',url); //更换当前窗口的url地址 ```
本人是初学者看一些代码有些不懂,还请大神指点一下,谢谢
${ msg }表示什么意思呢??? index.jsp怎么跳转到main.jsp呢??? **index.jsp** ``` <html > <title>聊天室</title> <link href="CSS/style.css" rel="stylesheet"> <script type="text/javascript"> function check(){ if(document.getElementById("form1").username.value==""){ alert("请输入用户名!"); document.getElementById("form1").username.focus(); return false; } if(document.getElementById("form1").password.value==""){ alert("请输入密码名!"); document.getElementById("form1").password.focus(); return false; } } </script> <body> <br> <center><h3 style="color:red;">${ msg }</h3></center> <form id="form1" name="form1" method="post" action="${pageContext.request.contextPath }/user" onSubmit="return check()"> <input type="hidden" name="method" value="login"> <table width="371" height="230" border="0" align="center" cellpadding="0" cellspacing="0" background="images/login.jpg"> <tr> <td height="120" colspan="3" class="word_dark">&nbsp;</td> </tr> <tr> <td width="53" align="center" valign="top" class="word_dark">&nbsp;</td> <td width="216" align="center" valign="top" class="word_dark"> <table width="100%" height="100%"> <tr> <td>用户名:</td> <td><input type="text" name="username" class="login"></td> </tr> </table> </td> <td width="94" valign="top" class="word_dark"></td> </tr> <tr> <td width="53" align="center" valign="top" class="word_dark">&nbsp;</td> <td width="216" align="center" valign="top" class="word_dark"> <table width="100%" height="100%"> <tr> <td>密&nbsp;&nbsp;码:</td> <td><input type="password" name="password" class="login"></td> </tr> </table> </td> <td width="94" valign="top" class="word_dark"></td> </tr> <tr> <td width="53" align="center" valign="top" class="word_dark">&nbsp;</td> <td width="216" align="center" valign="top" class="word_dark"> <input name="Submit" type="submit" class="btn_bg" value="进 入"> </td> <td width="94" valign="top" class="word_dark"> </td> </tr> </table> </form> </body> </html> ``` **main** ``` <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ include file="safe.jsp"%> <html> <head> <title>聊天室</title> <link href="CSS/style.css" rel="stylesheet"> <script type="text/javascript" src="${ pageContext.request.contextPath }/js/jquery-1.8.3.js"></script> <script type="text/javascript"> var sysBBS = "<span style='font-size:14px; line-height:30px;'>欢迎光临心之语聊天室,请遵守聊天室规则,不要使用不文明用语。</span><br><span style='line-height:22px;'>";var sysBBS = "<span style='font-size:14px; line-height:30px;'>欢迎光临心之语聊天室,请遵守聊天室规则,不要使用不文明用语。</span><br><span style='line-height:22px;'>"; window.setInterval("showContent();",1000); window.setInterval("showOnLine();",10000); window.setInterval("check();",1000); // Jquery:JS框架. // 相当于window.onload $(function(){ showOnLine(); showContent(); check(); }); function check(){ $.post("${pageContext.request.contextPath}/user?method=check",function(data){ if(data == 1){ // 提示用户下线了 alert("用户已经被踢下线了!"); // 回到登录页面! window.location = "index.jsp"; } }); } // 显示在线人员列表 function showOnLine(){ // 异步发送请求 获取在线人员列表 // Jquery发送异步请求 $.post("${pageContext.request.contextPath}/online.jsp?"+new Date().getTime(),function(data){ // $("#online") == document.getElementById("online"); $("#online").html(data); }); } // 显示聊天的内容 function showContent(){ $.post("${pageContext.request.contextPath}/user?"+new Date().getTime(),{'method':'getMessage'},function(data){ $("#content").html(sysBBS+data); }); } function set(selectPerson){ //自动添加聊天对象 if(selectPerson != "${existUser.username}"){ form1.to.value=selectPerson; }else{ alert("请重新选择聊天对象!"); } } function send(){ if(form1.to.value==""){ alert("请选择聊天对象!"); return false; } if(form1.content.value==""){ alert("发送信息不可以为空!"); form1.content.focus(); return false; } // $("#form1").serialize():让表单中所有的元素都提交. // jquery提交数据.{id:1,name:aa,age:25} $.post("${pageContext.request.contextPath}/user?"+new Date().getTime(),$("#form1").serialize(),function(data){ $("#content").html(sysBBS+data+"</span>"); }); } function exit(){ alert("欢迎您下次光临!"); window.location.href="${pageContext.request.contextPath}/user?method=exit"; } function checkScrollScreen(){ if(!$("#scrollScreen").attr("checked")){ $("#content").css("overflow","scroll"); }else{ $("#content").css("overflow","hidden"); //当聊天信息超过一屏时,设置最先发送的聊天信息不显示 //alert($("#content").height()); $("#content").scrollTop($("#content").height()*2); } setTimeout('checkScrollScreen()',500); } </script> </head> <body> <table width="778" height="150" border="0" align="center" cellpadding="0" cellspacing="0" background="images/top.jpg"> <tr> <td>&nbsp;</td> </tr> </table> <table width="778" height="276" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="165" valign="top" bgcolor="#f6fded" id="online" style="padding:5px">在线人员列表</td> <td width="613" height="200px" valign="top" background="images/main_bj.jpg" bgcolor="#FFFFFF" style="padding:5px; "> <div style="height:290px; overflow:hidden" id="content">聊天内容</div></td> </tr> </table> <table width="778" height="95" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#D6D3CE" background="images/bottom.jpg"> <form action="" id="form1" name="form1" method="post"> <input type="hidden" name="method" value="sendMessage"/> <tr> <td height="30" align="left">&nbsp;</td> <td height="37" align="left"> <input name="from" type="hidden" value="${existUser.username}">[${existUser.username} ]对 <input name="to" type="text" value="" size="35" readonly="readonly"> 表情 <select name="face" class="wenbenkuang"> <option value="无精打采的">无精打采的</option> </select> 说:</td> <td width="189" align="left">&nbsp;&nbsp;字体颜色: <select name="color" size="1" class="wenbenkuang" id="select"> <option selected>默认颜色</option> <option style="color:#999999" value="999999">烟雨蒙蒙</option> </select> </td> <td width="19" align="left"><input name="scrollScreen" type="checkbox" class="noborder" id="scrollScreen" onClick="checkScrollScreen()" value="1" checked> </td> </tr> <tr> <td width="21" height="30" align="left">&nbsp;</td> <td width="549" align="left"> <input name="content" type="text" size="70" onKeyDown="if(event.keyCode==13 && event.ctrlKey){send();}"> <input name="Submit2" type="button" class="btn_grey" value="发送" onClick="send()"> </td> <td align="right"><input name="button_exit" type="button" class="btn_grey" value="退出聊天室" onClick="exit()"> </td> <td align="center">&nbsp;</td> </tr> <tr> <td height="30" align="left">&nbsp;</td> <td align="center">&nbsp;</td> </tr> </form> </table> </body> </html> ```
如何获取Ext中没有active的tab页里的对象
系统首页底部有个Ext TabPanel,默认是收缩的,该TabPanel包含两个tab,并且activeTab:0,现在我打开系统首页,点击某个菜单“显示Map2”,要求最大化第二个tab,并获取该tab中的html页面(页面嵌套一个Flash对象)中的Flash Object,但是因为activeTab默认是0,所以在获取第二个tab中的对象报脚本错误。 以下是Tab Panel部分代码: [code="java"] titlebar: true, height: 300, margins:'0 0 0 0', items: new Ext.TabPanel({ id: 'flashId', border:false, activeTab:0, tabPosition:'bottom', items:[{ id:'web_map_tab1', html:'<iframe src="<%=request.getContextPath()%>/flash/map1.html?token=${userContext.sessionId}" id="__webMap1__" name="__webMap1__" frameBorder="0" scrolling="auto" top="0" width="100%" height="100%"></iframe>', title: 'Map1', autoScroll:true },{ id:'web_map_tab2', html:'<iframe src="<%=request.getContextPath()%>/flash/map2.html?token=${userContext.sessionId}" id="__webMap2__" name="__webMap2__" frameBorder="0" scrolling="auto" top="0" width="100%" height="100%"></iframe>', title: 'Map2', autoScroll:true }] }), ..... [/code] 其中map2.html中的内容为: [code="java"] <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" name="mapObj2" id="mapObj2" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="690" height="510"> <param name="movie" value="map2.swf" /> <param name="isShowStandardPath" value="1" /> <embed src=map2.swf quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Pr&nbsp;od_Version=ShockwaveFlash' type='application/x-shockwave-flash' width=690 height=510></embed> </object> [/code] 点击“显示Map2”的JS方法: [code="java"] function showMap2(){//打开第二个TAB页面并获取Flash对象 window.top.maximizeFlash();//最大化MAP2 var webFrame = window.top.document.getElementById("__webMap2__"); var flashObj = webFrame.contentWindow.document.getElementById("mapObj2");//mapObj2为第二个Tab指向页面的object id //****************************** //这里取不到flashObj,报脚本错误,当把activeTab改成1的时候,就可以得到 //但是需求是默认activeTab只能是0 //****************************** } /** * 最大化MAP2区域,并显示Map2中的FLASH */ function maximizeFlash(){ Ext.getCmp('webGisId').expand(true); Ext.getCmp('webGisId').tools['maximize'].dom.click(); Ext.getCmp('flashId').setActiveTab(1); //这里修改也无效 } [/code] 因为对EXT不太熟,希望熟悉的人可以指点一下,谢谢!
vue 如何调用在 export default {}外面的function
比如export default { } function wordStatic(input) { // 获取文本框对象 var el = document.getElementById('dcs'); if (el && input) { // 获取输入内容长度并更新到界面 var value = input.value; // 将换行符不计算为单词数 value = value.replace(/\n|\r/gi,""); // 更新计数 el.innerText = value.length; } } 如何在textarea中调用这个函数呢
用react ajax获取到json数据后怎么通过map方法循环输出??
刚开始学react,从react 的ajax方法从后台php中获取返回的数据,并输出,卡在不知道如何输出上了。。代码如下, <script type="text/babel"> class ListGet extends React.Component { constructor() { super(); this.state = {list:''}; } componentDidMount() { this.serverRequest = $.get("listindex.php",function (data,status) { {/*this.setState({ list:(eval('(' + data + ')'))[0].id });*/} const numbers = eval('(' + data + ')'); listItems = numbers.map((numbers) => <li>{numbers.id}</li> ); }.bind(this)); } componentWillUnmount() { this.serverRequest.abort(); } const listItems; render() { return ( <div> {/*this.state.list*/} {listItems} </div> ); } } ReactDOM.render( <ListGet />, document.getElementById('app') ) </script> 我后台返回的是json字符串,我先把它json对象化,然后想用map方法输出,但是怎么写都报错。。我想问下应该怎样写才对??
jsoup不能获取html的全部内容?
我用 ``` Document doc=Jsoup.connect("http://www.baidu.com").get(); System.out.println(doc); ``` 只能得出js代码,如图所示: ![图片说明](https://img-ask.csdn.net/upload/201902/24/1550992419_470168.jpg) 但是却可以通过doc.getElementById("ul"); 获取里面的标签值。 这是怎么回事呢?? ------------------------------------------------ 然后我用 ``` // 将string转成url对象 URL realUrl = new URL(url); URLConnection connection = realUrl.openConnection(); connection.connect(); in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"utf-8")); String line; while ((line = in.readLine()) != null) { result += line; } ``` 这种方式可以获取到网页所有的html代码。 哪位大神能给小弟指点下怎么回事?谢谢啦。
为什么我做的登录页面的验证码,第一次总是加载不出来,要点击刷新才行?
![图片说明](https://img-ask.csdn.net/upload/201912/16/1576481218_121713.png) ![图片说明](https://img-ask.csdn.net/upload/201912/16/1576481226_828744.png) ![图片说明](https://img-ask.csdn.net/upload/201912/16/1576481234_406433.png) ++++++++++++++++++++++++++++++++++++++++++++++ <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <script> <%-- 当窗口加载完毕 --%> window.onload = function (ev) { document.getElementById("img").onclick = function (ev1) { this.src = "./checkCodeServlet?time="+new Date().getTime(); } } </script> <form action="./loginServlet"> <table> <tr> <td>账号</td> <td><input type="text" name="username"></td> </tr> <tr> <td>密码</td> <td><input type="password" name="password"></td> </tr> <tr> <td>验证码</td> <td><input type="text" name="checkCode"></td> </tr> <tr> <td colspan="2"><img id="img" src="com.test.pro.CheckCodeServlet"></td> </tr> <tr> <td>提交</td> <td colspan="2"><input type="submit" value="登录"></td> </tr> <tr> <td></td> <td></td> </tr> </table> </form> <div><%=request.getAttribute("cc_error") == null ? "" : request.getAttribute("cc_error") %></div> <div><%=request.getAttribute("login_error") == null ? "" : request.getAttribute("login_error")%></div> </body> </html> ++++++++++++++++++++++++++++++++++++++++++++++ @WebServlet("/checkCodeServlet") public class CheckCodeServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int width = 100; int height = 50; //1.创建一对象,在内存中图片(验证码图片对象) BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); //2.美化图片 //2.1 填充背景色 Graphics g = image.getGraphics();//画笔对象 g.setColor(Color.PINK);//设置画笔颜色 g.fillRect(0,0,width,height); //2.2画边框 g.setColor(Color.BLUE); g.drawRect(0,0,width - 1,height - 1); String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789"; //生成随机角标 Random ran = new Random(); StringBuilder sb = new StringBuilder(); for (int i = 1; i <= 4; i++) { int index = ran.nextInt(str.length()); //获取字符 char ch = str.charAt(index);//随机字符 // 把生成的验证码存进sb sb.append(ch); //2.3写验证码 g.drawString(ch+"",width/5*i,height/2); } // 转换sb的格式? String checkCode_session = sb.toString(); //将验证码存入session request.getSession().setAttribute("checkCode_session",checkCode_session); //2.4画干扰线 g.setColor(Color.GREEN); //随机生成坐标点 for (int i = 0; i < 10; i++) { int x1 = ran.nextInt(width); int x2 = ran.nextInt(width); int y1 = ran.nextInt(height); int y2 = ran.nextInt(height); g.drawLine(x1,y1,x2,y2); } //3.将图片输出到页面展示 ImageIO.write(image,"jpg",response.getOutputStream()); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request,response); } }
Ajax异步处理跳转不了
这是第一个jsp页面的代码,可以正常进入AjaxServlet ``` var xmlHttpRequest=null; //页面加载 window.onload=function(){ //获取按钮对象 var but=document.getElementById("login"); but.onclick=function(){ //处理ajax //对浏览器判断 if (window.ActiveXOject) { //IE xmlHttpRequest=new ActiveXOject(Microsoft.XMLHTTP); }else{ xmlHttpRequest=new XMLHttpRequest(); } //获取内容 var loginname=document.getElementById("loginname").value; var upassword=document.getElementById("upassword").value; var inputRand=document.getElementById("inputRand").value; //打开链接 xmlHttpRequest.open("get","AjaxServlet?loginname="+loginname+"&upassword="+upassword+"&inputRand="+inputRand+"&type=1"+"&random="+new Date().getTime(),true); //回调函数 xmlHttpRequest.onreadystatechange=AjaxCallBack; //发送 xmlHttpRequest.send(null); } }; //创建回调函数 function AjaxCallBack(){ if (xmlHttpRequest.readyState==4) { if (xmlHttpRequest.status==200) { //读取后台回传的数据 var content=xmlHttpRequest.responseText; var divObject=document.getElementById("resultdiv"); divObject.innerHTML=content; if (content=="登录成功") { window.location.href="index.jsp"; } } } } ``` 这是第二个jsp页面的代码,执行之后没有进入后台AjaxServlet,路径是没有错的 而且不光是进不了AjaxServlet,把URL改成随便的一个JSP页面或者Servlet也跳不过去 ``` var xmlHttpRequest=null; //页面加载 window.onload=function(){ //获取按钮对象 var but=document.getElementById("OK"); but.onclick=function(){ //处理ajax //对浏览器判断 if (window.ActiveXOject) { //IE xmlHttpRequest=new ActiveXOject(Microsoft.XMLHTTP); }else{ xmlHttpRequest=new XMLHttpRequest(); } //获取内容 var oldpassword=document.getElementById("oldpassword").value; var newpassword=document.getElementById("newpassword").value; var renewpassword=document.getElementById("renewpassword").value; //打开链接 //alert("执行到这里"); xmlHttpRequest.open("get","../../AjaxServlet?oldpassword="+oldpassword+"&newpassword="+newpassword+"&renewpassword="+renewpassword+"&type=2",true); //回调函数 xmlHttpRequest.onreadystatechange=AjaxCallBack; //发送 xmlHttpRequest.send(null); } }; //创建回调函数 function AjaxCallBack(){ if (xmlHttpRequest.readyState==4) { if (xmlHttpRequest.status==200) { //读取后台回传的数据 var content=xmlHttpRequest.responseText; var divObject=document.getElementById("resultdiv"); divObject.innerHTML=content; } } } ``` 我是初学者,如果是写法不对,想请教一下怎样在一个项目里面的多个JSP页面实现异步处理
xmlHttp.open("GET",url,true);执行以后既不报错,也没有访问到servlet,这是为什么?
首先下面是获取XMLHttpRequest对象的方法,应该是没有问题的。 ``` //获得的XmlHttp对象的函数 function createXmlHttp(){ //对大对数浏览器适用 var xmlHttp; if(window.XMLHttpRequest){ xmlHttp = new XMLHttpRequest(); } //考虑到浏览器的兼容性问题 if(window.ActiveXObject){ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); if(!xmlHttp){//如果还是没有获取到采用另一种方法 xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } } return xmlHttp; } ``` 下面是获取到XMLHttpRequest对象并调用open()方法传递参数给servlet。 调用以后就是没反应,不报错,servlet也没有被执行。 如果直接在浏览器上访问该servlet是可以的,这说明我的web.xml配置应该也是正确的,servlet也没有问题。想不出哪里还会出现问题了,希望这个问题能得到解决 ``` var xmlHttp; function getMoreContents(){ //首先获取用户的输入 var content = document.getElementById("keyword"); if(content.value == ""){ return; } //给服务器发送用户输入的内容,因为采用的是ajax异步发送 //所以需要使用一个对象,XmlHttpRequest对象 xmlHttp = createXmlHttp(); //要给服务器发送数据 var url = "search?keyword="+escape(content.value);//escape防止中文输入问题 //true表示异步 xmlHttp.open("get",url,true);//get请求方式不需要内容体,url为要访问的servlet的路径 ```
uploadify浏览器不兼容谷歌可以上传图片成功 但是Firefox IE 都出现http error
具体代码如下 $('#txtImgurl').uploadify( {'uploader':'js/upload/upload/uploadify.swf?ver=' + Math.random(), 'script':'/doImgUp.jsp', 'cancelImg':'js/upload/upload/cancel.png', 'auto':false, 'folder':'upload', 'multi':true, 'simUploadLimit':99, 'buttonImg':'js/upload/upload/upimg.gif', 'fileExt':'*.gif;*.png;*.jpg;*.bmp', 'fileDesc':'*.gif,bmp,jpg,png等图片文件', 'queueID':'divup', 'sizeLimit':10240000000, 'onCancel':function(event, ID, fileObj, response, data){ // 取消上传事件 }, 'onComplete': function(event, ID, fileObj, response, data) { //获取上传文件名字 var show=document.getElementById("showfilename").value; document.getElementById("showfilename").value=show+response; var div=document.getElementById("showdiv").innerHTML; document.getElementById("showdiv").innerHTML=div+response; }}); 下面是doImgUp.jsp 处理内容 String savePath=request.getRealPath("/upload/image"); //设置文件最大容量 int maxSize=10*10*1024*1024; //创建文件上传请求域对象和重新命名 MultipartRequest req=new MultipartRequest(request,savePath,maxSize,"utf-8",new RenamePolicyCos()); //返回文件名 String files=FileUp.uploadfiles(req); //处理完后,将文件名返回到界面中 out.print(files);
如何将摄像头截取的图像上传到服务器
这是前段调取摄像头进行截图的代码 ``` <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>web RTC 测试</title> <style> .booth { width:400px; background:#ccc; border: 10px solid #ddd; margin: 0 auto; } </style> </head> <body> <div class="booth"> <video id="video" width="400" height="300"></video> <button id='tack'>拍照</button> <input type="button" onclick="uploadImage();" value="上传"/> <canvas id='canvas' width='400' height='300'></canvas> <img id='img' src=''> </div> <script> var video = document.getElementById('video'), canvas = document.getElementById('canvas'), snap = document.getElementById('tack'), img = document.getElementById('img'), vendorUrl = window.URL || window.webkitURL; //媒体对象 navigator.getMedia = navigator.getUserMedia || navagator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia; navigator.getMedia({ video: true, //使用摄像头对象 audio: false //不适用音频 }, function(strem){ console.log(strem); video.src = vendorUrl.createObjectURL(strem); video.play(); }, function(error) { //error.code console.log(error); }); snap.addEventListener('click', function(){ //绘制canvas图形 canvas.getContext('2d').drawImage(video, 0, 0, 400, 300); //把canvas图像转为img图片 img.src = canvas.toDataURL("image/png"); }); </script> </body> </html> ``` 我现在想把获取的图片上传到服务器,具体上传的代码应该怎么写?(如果要链接后台,后台是Java)
前端js实现web页面导出Excel,乱码问题
### 以下是我用的js: ### 使用以下代码导出的Excel文件在WPS中打开好像是正常的,但是在office中打开时,会出现以下提示(我用的是office 2013版的): ![图片说明](https://img-ask.csdn.net/upload/201712/25/1514186548_925715.png) ### 而且有的时候是乱码的(office 2010版本的出现过乱码的),而有的时候又是正常显示的,具体有什么规律在里面我不清楚。怎么解决这个问题,希望得到你们的帮助。挺急的! ``` var idTmr; function getExplorer() { var explorer = window.navigator.userAgent ; //ie if (explorer.indexOf("MSIE") >= 0) { return 'ie'; } //firefox else if (explorer.indexOf("Firefox") >= 0) { return 'Firefox'; } //Chrome else if(explorer.indexOf("Chrome") >= 0){ return 'Chrome'; } //Opera else if(explorer.indexOf("Opera") >= 0){ return 'Opera'; } //Safari else if(explorer.indexOf("Safari") >= 0){ return 'Safari'; } } function Cleanup() { window.clearInterval(idTmr); CollectGarbage(); } var tableToExcel = (function() { var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>', base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) }, format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) } return function(table, name) { if (!table.nodeType) table = document.getElementById(table); var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML} window.location.href = uri + base64(format(template, ctx)) } })(); export function method1(tableid){ //整个表格拷贝到EXCEL中 if(getExplorer()=='ie') { var curTbl = document.getElementById(tableid); var oXL = new ActiveXObject("Excel.Application"); //创建AX对象excel var oWB = oXL.Workbooks.Add(); //获取workbook对象 var xlsheet = oWB.Worksheets(1); //激活当前sheet var sel = document.body.createTextRange(); sel.moveToElementText(curTbl); //把表格中的内容移到TextRange中 sel.select; //全选TextRange中内容 sel.execCommand("Copy"); //复制TextRange中内容 xlsheet.Paste(); //粘贴到活动的EXCEL中 oXL.Visible = true; //设置excel可见属性 try { var fname = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls"); } catch (e) { print("Nested catch caught " + e); } finally { oWB.SaveAs(fname); oWB.Close(savechanges = false); //xls.visible = false; oXL.Quit(); oXL = null; //结束excel进程,退出完成 //window.setInterval("Cleanup();",1); idTmr = window.setInterval("Cleanup();", 1); } }else{tableToExcel(tableid)} }; ```
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
【JSON解析】浅谈JSONObject的使用
简介 在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于机器解析和生成、易于理解、阅读和撰写,而且Json采用完全独立于语言的文本格式,这使得Json成为理想的数据交换语言。 JSON建构于两种结构: “名称/值”对的集合(A Collection of name/va...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
只因接了一个电话,程序员被骗 30 万!
今天想给大家说一个刚刚发生在我身边的一起真实的诈骗经历,我的朋友因此被骗走30万。注:为了保护当事人隐私,部分情节进行了修改。1平安夜突来的电话开始以为就像普通的诈骗一样,想办法让你把钱...
我一个37岁的程序员朋友
周末了,人一旦没有点事情干,心里就瞎想,而且跟几个老男人坐在一起,更容易瞎想,我自己现在也是 30 岁了,也是无时无刻在担心自己的职业生涯,担心丢掉工作没有收入,担心身体机能下降,担心突...
python自动下载图片
近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。 可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉思。。。。 突然旁边的IOS同事问:‘嘿,兄弟,我发现一个网站的图片很有意思啊,能不能帮我保存下来提升我的开发灵感?’ 作为一个坚强的社畜怎么能说自己不行呢,当时朕就不假思索的答应:‘oh, It’s simple. Wait for me for a ...
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
Java 14 都快来了,为什么还有这么多人固守Java 8?
从Java 9开始,Java版本的发布就让人眼花缭乱了。每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份,...
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
Idea 中最常用的10款插件(提高开发效率),一定要学会使用!
学习使用一些插件,可以提高开发效率。对于我们开发人员很有帮助。这篇博客介绍了开发中使用的插件。
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
立即提问