我正在开发一个Web应用程序,它接受用户输入,进行工程计算,然后显示格式化的报告或图形.图形是工程图,并不总是标准图形,如饼图.该应用程序的主要功能是使用户能够将这些图表从浏览器复制到Word或Excel文档.
我必须选择使用客户端生成的SVG或服务器端生成的位图.我喜欢SVG方法和原型看起来不错,但是,复制SVG图形似乎跨浏览器可以支持不一致,尤其是在图形在一个div所示(即整个页面不.SVG).例如,IE在下拉列表中显示"副本",但仅将部分SVG图形复制到剪贴板.如果我右键单击SVG图形,则Chrome不提供复制选项.
如果我谷歌周围,我很惊讶看到有关从Web应用程序获取SVG图像到剪贴板的问题的信息很少.
对于解决过这个问题的读者,我的问题是:
有没有一种一致的方法可以将一个更大的DOM的SVG元素放到剪贴板上,最好是使用JavaScript;
鉴于我要求从浏览器到剪贴板获取图形的任何其他建议?
我设置了一个 .Net 6 Core Minimal API,以使用 SeriLog 登录到 MS SQL Server。在我的类库中,仅当我修改类库中的构造函数时,我才能够使用 SeriLog 进行日志记录。我试图避免修改类库类或方法的构造函数。
根据我使用控制台应用程序的经验,如果我在主 Program.cs 中设置 SeriLog,那么我可以在类库中的任何类中使用日志记录,而无需将记录器传递给构造函数。因此,我可以在类库中的任何位置使用 Log.Information("my message") 并且它可以工作。我试图在 .Net 6 最小 API 项目中使用我的 Program.cs 实现相同的目标。
我觉得通过查看有关该主题的其他问题应该可以做到。特别是这个,其中的答案指出:
您无需在类库中执行任何操作。只有主应用程序具有组合根(应用程序生命周期中可以设置对象图的最早点)。
因此,根据上面的内容,在我的 API Program.CS 中,我有以下代码(我已在注释中指出了哪些有效,哪些无效):
//Configure SeriLog
builder.Logging.ClearProviders();
var appSettings = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
var logDB =
builder.Configuration.GetSection("ConnectionStrings:Default").Value;
var sinkOpts = new MSSqlServerSinkOptions { TableName = "Logs" };
var columnOptions = new ColumnOptions();
var logger = new LoggerConfiguration()
.MinimumLevel.Override("Microsoft",
Serilog.Events.LogEventLevel.Information)
.WriteTo.MSSqlServer(
connectionString: logDB,
sinkOptions: sinkOpts,
columnOptions: columnOptions,
appConfiguration: …Run Code Online (Sandbox Code Playgroud) 我正在 DIV 中绘制 SVG 绘图。绘图比 DIV 大,因此滚动变为活动状态。我正在我的电脑上测试这个,它有 IE10 和 Windows 7。IE10 似乎滚动 SVG 绘图超过它的终点。IE9、Chrome 和 Firefox 不会这样做。下面的代码重现了这个问题。
如果你使用它来创建一个 html 页面并在 Chrome 中运行它,你应该在滚动时看到一条从左上角到右下角的线。在滚动的最右边,这条线正好停在黄绿色 SVG 元素的右侧,红线表示限制。
但是,在我的 Windows 7 机器上使用 IE10 时,该行在末尾的左侧稍微停止。随着 SVG 绘图大小的增加,这种“有点”变得更大。似乎 IE 滚动 SVG 绘图超过了它的正确限制。在尝试获取点击位置并将其转换回真实坐标时,这对我造成了严重破坏。
我之前发布了这个问题,认为问题出在 IE9 和 IE10 中,但从那以后我将其隔离到 IE10。我也在另一个论坛(http://social.msdn.microsoft.com/Forums/en-US/iewebdevelopment/thread/0d4ef7dd-7e1c-4a09-a483-2760367a2e84)发帖,有人回来说他们没有看到同样的问题。所以它可能与兼容性视图有关。但是,如果我在测试时在 IE 中按 F12,我会看到“浏览器模式:IE10,文档模式:标准”
非常感谢帮助!
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>IE SVG SCroll Problem</title>
<META http-equiv="CACHE-CONTROL" content="NO-CACHE, NO-STORE" />
</head>
<body onload="draw()">
<div style="position:absolute; left:100px; top:50px; width:500px; height: 300px; background-color:wheat;">
<div id="plotRect" style="position:relative; left:40px; top:25px; width:400px; height:240px; …Run Code Online (Sandbox Code Playgroud)