以前很少使用到ajax同步传输,也没有注意到其在firefox中的表现!前两周因项目需要,使用到了ajax同步传输,但在测试中发现一般使用的程序firefox中的ajax同步传输无法执行。相同代码,异步状态在firefox下正常,但无法实现需要的功能!
<script language="javascript" type="text/javascript"> 
function GetData()
{
var result;
var xmlhttp = create_XML_object();
xmlhttp.open("POST", "/test.aspx", false);
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)
{
result = xmlhttp.responseText;
}
}
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send(null);
return result;
}
</script>

以上基础的ajax调用代码,ajax异步传输在所有浏览器正常,ajax同步传输在IE等其他浏览器中正常,在firefox中的ajax同步传输不会起作用!
究其原因,就是firefox经常打起的标准大旗(可害苦了不少人),firefox中对ajax同步请求是不调用状态改变函数onreadystatechange的,firefox中的ajax同步传输则在xmlhttp.send(null)之后直接使用xmlhttp.responseText便可获取ajax同步传输返回值!那么我们在JS中就先判断浏览器类型,然后调用不同的代码实现ajax同步传输,代码如下:

<script language="javascript" type="text/javascript">
function getOs()
{
var OsObject = "";
if(navigator.userAgent.indexOf("MSIE")>0) {
return "MSIE"; //IE浏览器
}
if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
return "Firefox"; //Firefox浏览器
}
if(isSafari=navigator.userAgent.indexOf("Safari")>0) {
return "Safari"; //Safan浏览器
}
if(isCamino=navigator.userAgent.indexOf("Camino")>0){
return "Camino"; //Camino浏览器
}
if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){
return "Gec..
……

相信很多人通过链接的onclick事件做跳转操作时,出现location.href不跳转的问题,下面对onclick事件中location.href的几种测试,来解决这个location.href不跳转的问题。

<script type="text/javascript"> 
function ToUrl(x)
{
location.href=x;
}
</script>
<a href="javascript:;" onclick="javascript:ToUrl('http://www.jingzhengli.cn');">
location.href不跳转测试1</a>
<a href="javascript:void(0);"
onclick="javascript:ToUrl('http://www.jingzhengli.cn');">
location.href不跳转测试2</a>
<a href="javascript:void(0);"
onclick="javascript:ToUrl('http://www.jingzhengli.cn');return false;">
location.href不跳转测试3</a>
<a href="#" onclick="javascript:ToUrl('http://www.jingzhengli.cn');">
location.href不跳转测试4</a>
<a href="###" onclick="javascript:ToUrl('http://www.jingzhengli.cn');">
location.href不跳转测试5</a>


……
之前一直使用的编辑器是FCKeditor2.6.3,经过我的配置个性化之后,还是蛮好用的,但是在masterpage下就出现了一个问题:点击添加链接和插入图片这些需要popup的功能无法使用,点击后无弹出窗!

在网上寻得一功能强劲的基于jquery框架的小型编辑器,Lightweight Rich Text Editor (RTE / WYSIWYG) for jQuery非常美观和实用!但是缺陷是只有英文版且有一个有缺陷的缩放功能!

于是再次为了广大.neter的福利,我和同事周钟一起将此小型编辑器修改和汉化,供大家使用,点击这里下载

调用方法:

<html>
<head>
<title>A Light weight RTE jQuery Plugin</title>
<link type="text/css" rel="stylesheet" href="/Blog/jquery.rte.css" />
<style type="text/css">
body, textarea {
font-family:sans-serif;
font-size:12px;
}
</style>
</head>
<body>
<form>
<p>
<textarea name="content" id="content" class="rte1" cols="100" rows="10"></textarea>
</p>
</form>
<script type="text/javascript" src="/Blog/jquery.js"></script>
<script type="text/javascript" src="/Blog/jquery.rte.js"></script>
<script type="text/javascript" src="/Blog/jquery.rte.tb.js"></script>
<script type="text/javascript" src="/Blog/jquery.ocupload-1.1.4.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var arr = $('.rte1').rte({
css: ['default.css'],
controls_rte: rte_toolbar,
controls_html: html_toolbar<..
……

最近因为工作需要,小小的研究了一下HTML生成PDF的方法,这方面的内容很多,但要么是不尽如人意的方法,要么就是那种收费的类库!为了广大.neter的福利,把自己的一点小小心得总结出来与大家分享!

先说说我最后采用的方法吧!wkhtmltopdf,一个集成好了的exe文件(C++编写),基本的调用方法是,wkhtmltopdf www.jingzhengli.cn myhomepage.pdf,可以先在命令行测试一下,有其他的需要可以在命令行通过wkhtmltopdf --help查询,如果是超长页的花,可以用命令wkhtmltopdf www.jingzhengli.cn myhomepage.pdf -H --outline (-H是添加默认标题,--outline是添加pdf的左侧概要哦!)而且可以批量生成哦,中间用空格隔开,用命令wkhtmltopdf www.jingzhengli.cn www.jingzhengli.commyhomepage.pdf 快去试试吧!提醒下:如果是转换GB2132编码的网页是会出现乱码的哦! 好了,其他的自己琢磨琢磨吧!上面都是在命令行下测试,下面给出在C#下的调用方法:

using System.Diagnostics;
/// <summary>
/// HTML生成PDF
/// </summary>
/// <param name="url">地址</param>
/// <param name="path">PDF存放路径</param>
public static bool HtmlToPdf(string url, string path)
{
try
{
if (string.IsNullOrEmpty(url) || string.IsNullOrEmpty(path))
return false;
Process p = new Process();
string str = System.Web.HttpContext.Current.Server.MapPath("wkhtmltopdf.exe");
if (!System.IO.File.Exists(str))
return false;
p.StartInfo.FileName = str;
p.StartInfo.Arguments = " \"" + url + "\" " + path;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
System.Threading.Thread.Sleep(500);

return true;
}
catch (Exception ex)
{
HttpContext.Current.Response.Write(ex);
}
return false;
}

调用方法:HtmlToPdf("网页URL", Server.MapPath("PDF存放路径"));


……
首页 上一页 下一页 尾页 页次:1/4页  4篇日志/页 转到:
“新竞争力”是深圳市竞争力科技有限公司的注册商标
深圳市竞争力科技有限公司 版权所有
电话:86-755-26502263  Email:info@jingzhengli.cn