从我最近的问题,我已经创建了一些用于动态加载局部视图的JavaScript函数.所以,我无法调试任何动态加载JavaScript.因为所有加载的JavaScript都将通过"eval"函数进行评估.
但是,我找到了一些方法来创建新的JavaScript,使用以下脚本动态创建脚本到当前文档的标题.所有加载的脚本都将显示在HTML DOM中(您可以使用任何调试器来查找它).
var script = document.createElement('script')
script.setAttribute("type","text/javascript")
script.text = "alert('Test!');";
document.getElementsByTagName('head')[0].appendChild(script);
Run Code Online (Sandbox Code Playgroud)
顺便说一下,大多数调试器(IE8 Developer Toolbar,Firebug和Google Chrome)都无法在任何动态脚本中设置断点.因为必须在加载页面后第一次加载可调试脚本.
您是否有动态脚本内容或文件调试的想法?
更新1 - 添加测试源代码
您可以使用以下xhtml文件来尝试调试someVariable值.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Dynamic Loading Script Testing</title>
<script type="text/javascript">
function page_load()
{
var script = document.createElement('script')
script.setAttribute("id", "dynamicLoadingScript");
script.setAttribute("type","text/javascript");
script.text = "var someVariable = 0;\n" +
"someVariable = window.outerWidth;\n" +
"alert(someVariable);";
document.getElementsByTagName('head')[0].appendChild(script);
}
</script>
</head>
<body onload="page_load();">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
从答案来看,我只是在FireBug中测试它.结果应显示如下图像.
请查看页面加载后添加的"dynamicLoadingScript"脚本.
但是在FireBug的脚本选项卡中找不到它
更新2 …
我知道W3C只是发布他们的Web Notification草案版本来通知用户.因此,没有浏览器在其当前或最新的构建浏览器中实现此方法.
在我搜索了很多网页以便在大多数浏览器中找到所有可能的桌面通知之后.我找到了任何应该支持此功能的2个主要浏览器.
1. 谷歌浏览器和基于Webkit的浏览器
Windows 通知http://code.google.com/chrome/extensions/images/notification-windows.png Mac 通知http://code.google.com/chrome/extensions/images/notification-mac.png 通知Linux http://code.google.com/chrome/extensions/images/notification-linux.png
我们可以使用本机桌面通知功能来显示如下图所示的消息.
更多信息:Chromium项目 - 桌面通知
2. Internet Explorer
对于IE 5.5+,我们可以使用createPopup功能来通知Google Chrome中的使用,但它比Google Chrome更灵活.

更多信息:MSDN上的CreatePopup方法
而且,如果我们将网站固定到Windows 7任务栏,我们也可以使用叠加图标来通知用户.
叠加图标http://i.msdn.microsoft.com/dynimg/IC432198.jpg
更多信息:IE9,站点特定浏览器,以及将自己的跳转列表项添加到固定选项卡
其他浏览器
我想我们可以使用Pines Notify jQuery插件来创建浏览器内通知.

或者你有任何桌面通知库或想法建议我吗?
谢谢,
PS.如果它没有精美的库,我将自己创建它.
更新我
从IE8开始,它不允许我们在当前浏览器之外显示弹出窗口.例如,当IE最小化时,不显示所有弹出窗口.因此,谷歌浏览器只有一个具有完全网络通知API的浏览器(FF 4也有未记录的网络通知API,但现在不起作用).
如您所知,IE6有一些错误,如果不使用非标准样式的过滤器,则无法显示半透明的PNG文件.在IE7中,此问题已得到修复.但它仍然有一些关于PNG文件的错误.它无法正确显示淡入淡出的半透明PNG文件.使用半透明PNG文件在jQuery中使用show/hide功能时,您可以清楚地看到它.图像的背景显示为不透明的黑色.
你有任何想法通过使用jQuery解决这个问题.
更新
我们来看看我的测试
如您所见,IE8始终错误地显示PNG-24图像.而且,当我淡入淡出(jQuery.fadeOut函数)时,IE8仍能正确显示PNG-8图像.但是,当我同时淡化和调整大小(jQuery.hide函数)时,它会错误地显示PNG-8图像.
PS.您可以从此处下载我的测试源代码.
谢谢,
我刚刚发现jQuery NuGet包的最新版本(1.8.0)包含了我找不到任何文档的新类型的vsdoc文件.intellisense文件只包含基于xml注释的jQuery库文档.我不知道如何使用这个文件.

你对此有什么想法或文件吗?我在这个项目中使用VS2012.
在我的Web项目中,我使用DocX文件类型来包含报告模板.我需要将DocX文件类型转换为PDF.你有任何.Net托管代码吗?
我知道解决这个问题的几种方法.但它不是托管代码和免费像下列项目.
Word 12.0对象库以编程方式将Word 2007文档另存为PDF文档或XPS文档.但它需要在服务器上安装Office 2007.
使用PDFCreator等免费PDF打印机进行打印.但我需要在Office 2007等服务器上打开DocX的程序.这是非常糟糕的主意.
通过免费转换器程序转换.但结果并不完美.
使用XF渲染服务器之类的框架.这是一个非常好的主意,但它不是免费的.
创建PDF Api中的所有文档内容,如iTextSharp.但我必须努力创造好的文件.
或者使用其他文件格式创建模板文档,可以将其导出为DocX和PDF文件格式.此外,最终用户应该轻松编辑此文件.如果你知道,请告诉我.
谢谢,
我正在使用我的ASP.NET MVC 2项目.我创建了异常过滤器,用于捕获当用户无权查看某些操作时发生的未授权访问异常.
[CustomError(typeof(UnauthorizedAccessException), "Error", "UnauthorizedAccess")]
public class MyController : BaseController
{
}
Run Code Online (Sandbox Code Playgroud)
异常被抛出之后,我的过滤器将转移到配置的控制器/动作了下面的方法.
public ActionResult UnauthorizedAccess(ExceptionContext context)
{
Response.StatusCode = CustomHttpStatusCode.UnauthorizedUser;
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
最后,前ASP.NET应用结束该请求时,它将调用下面的方法,其位于Global.ascx用于改变自定义的HTTP状态代码到HTTP状态401(未授权访问).
public void Application_EndRequest(object sender, EventArgs e)
{
if (Response.StatusCode == CustomHttpStatusCode.UnauthorizedUser)
{
Response.StatusCode = 401;
}
}
Run Code Online (Sandbox Code Playgroud)
一切都在我的机器上工作正常(IIS 7.5).但它在我的部署网站上不起作用.它仍然返回纯文本"您没有权限查看该目录或网页." 而不是我的自定义错误页面.
PS.以下配置是本案例的当前web.config.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<customErrors mode="On"></customErrors>
</system.web>
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="502" subStatusCode="-1" />
<remove statusCode="501" subStatusCode="-1" />
<remove statusCode="500" subStatusCode="-1" />
<remove statusCode="412" subStatusCode="-1" />
<remove statusCode="406" subStatusCode="-1" />
<remove …Run Code Online (Sandbox Code Playgroud) 我知道ASP.NET MVC具有错误过滤器属性来处理指定的错误类型.但是,此功能无法捕获应用程序启动时发生的任何错误.因此,我需要在"Application_Error"方法中添加一些代码来处理此错误,如下面的代码所示.
public void Application_Error(object sender, EventArgs e)
{
// At this point we have information about the error
var ctx = HttpContext.Current;
var exception = ctx.Server.GetLastError();
var errorInfo =
"<br>Offending URL: " + ctx.Request.Url +
"<br>Source: " + exception.Source +
"<br>Message: " + exception.Message +
"<br>Stack trace: " + exception.StackTrace;
ctx.Response.Write(errorInfo);
Server.ClearError();
}
Run Code Online (Sandbox Code Playgroud)
虽然,当正常的应用程序错误发生时,如果在视图页面中发生错误,此代码将正常工作.但是,当应用程序启动时发生错误时,它不起作用,因为请求和响应对象始终为null.
接下来,我尝试通过在自定义错误中设置默认重定向来解决此问题,如下面的代码.
<customErrors mode="On" defaultRedirect="Scripts/ApplicationError.htm"></customErrors>
Run Code Online (Sandbox Code Playgroud)
不幸的是,它不起作用,因为当应用程序收到重定向请求时,它会尝试再次启动应用程序并再次抛出异常.
怎么解决这个问题?或者,您是否有其他想法来处理此错误.
谢谢,
PS.创建此处理程序的主要原因是因为我想在应用程序无法连接到其他服务(如数据库)以在应用程序启动时缓存数据时显示错误.
我尝试使用Lazy <SelectList>来缓存我的ASP.NET MVC项目中的任何查找数据.但是我无法强制Lazy对象在更改时重新加载查找数据.
我创建派生类,如下面的代码.我发现Lazy <T>使用IsValueCreated属性来保持当前状态.但是,在MappingFunc方法中,我无法更改IsValueCreated的值,因为它是静态方法.
public class LazySelectList : Lazy<SelectList>
{
public LazySelectList(Func<LimeEntities, IEnumerable> initFn, string dataValueField, string dataTextField)
: base(MapingFunc(initFn, dataValueField, dataTextField))
{
}
public new bool IsValueCreated { get; set; }
public static Func<SelectList> MapingFunc(Func<DbContext, IEnumerable> valueFactory, string dataValueField, string dataTextField)
{
return () =>
{
var context = ObjectFactory.GetInstance<DbContext>();
return new SelectList(valueFactory(context), dataValueField, dataTextField);
};
}
}
Run Code Online (Sandbox Code Playgroud)
我使用下面的代码调用这个函数.但它始终会创建新值,因为IsValueCreated值始终为false.
LookupCache.DocTypeList = new LazySelectList(db => db.DocTypes.OrderBy(x => x.Name), "ID", "Name");
Run Code Online (Sandbox Code Playgroud) 我有一些NuGet包,包含DLL文件和Web相关文件,如JavaScript,样式表和图像文件.我想创建只将web相关文件安装到web项目的包(包括ASP.NET和ASP.NET MVC项目).最简单的方法是什么?
谢谢,
PS.我认为应该可以通过Powershell脚本.但我认为,这对我来说非常复杂.
我从Microsoft Office 2007中发现了很多漂亮的图标.你有没有想过提取并使用VBA将所有图标保存为PNG文件?
以下代码是用于从ImageMSO获取图像的代码.
Application.CommandBars.GetImageMso([name], [width], [height])
Run Code Online (Sandbox Code Playgroud)
我可以将所有内容显示为PictureBox控件并将excel文件另存为网页.但是,每个图标质量都很低.
此外,我尝试使用以下代码创建用于导出为Bitmap对象的C#Excel加载项项目.但我发现它无法导出为半透明的PNG.
stdole.IPictureDisp p = Application.CommandBars.GetImageMso(fileName, size, size);
Bitmap b = Bitmap.FromHbitmap((IntPtr)p.Handle, (IntPtr)p.hPal);
Run Code Online (Sandbox Code Playgroud)
PS.我想将所有图标保存为PNG格式,因为我需要使用它的半透明功能.它允许我在大多数背景颜色上使用所有图标而不是白色背景.
asp.net ×2
asp.net-mvc ×2
javascript ×2
jquery ×2
ajax ×1
c#-4.0 ×1
docx ×1
icons ×1
iis-7 ×1
intellisense ×1
nuget ×1
office-2007 ×1
pdf ×1
png ×1
vba ×1