Почему браузер блокирует содержимое javascript?
У меня есть компонент изображения на моем сайте asp.net, и я помещаю их в точное местоположение с помощью css. Я хочу сохранить все в одном изображении, и после некоторого копания я нашел решение получить снимок экрана этого с помощью html2canvas... он работает нормально, и проблема в том, что после загрузки на сервер браузер заблокирует содержимое функции html2canvas, и я не знаю почему? функция canvas фактически передает холст серверу и сохраняет его как одно изображение в базе данных, но я не могу решить проблему блокировки, и после добавления исключения для этой страницы только она работает нормально... но я хочу, чтобы пользователь непосредственно получал доступ к странице без всплывающей страницы, которая нужно разрешение или сказать, что этот сайт не авторизован... как я знаю, html2canvas является бесплатной лицензированной библиотекой и не требует никакой лицензии.. вот мой код для изображений:
<div id="imageBody">
<asp:Image ImageUrl="img/bgA4.png" height="364" width="216" runat="server" ID="img1" />
<asp:Image ImageUrl="img/darAghabChap/default.png" id="imgdarAghabChap" runat="server" />
<asp:Image ImageUrl="img/darAghabRast/default.png" id="imgdarAghabRast" runat="server" />
<asp:Image ImageUrl="img/darJeloChap/default.png" id="imgdarJeloChap" runat="server" />
<asp:Image ImageUrl="img/darJeloRast/default.png" id="imgdarJeloRast" runat="server" />
<asp:Image ImageUrl="img/gelgirAghabChap/default.png" id="imggelgirAghabChap" runat="server" />
<asp:Image ImageUrl="img/gelgirAghabRast/default.png" id="imggelgirAghabRast" runat="server" />
<asp:Image ImageUrl="img/gelgirJeloChap/default.png" id="imggelgirJeloChap" runat="server" />
<asp:Image ImageUrl="img/gelgirJeloRast/default.png" id="imggelgirJeloRast" runat="server" />
<asp:Image ImageUrl="img/kapoot/default.png" id="imgkapoot" runat="server" />
<asp:Image ImageUrl="img/separJelo/default.png" id="imgseparJelo" runat="server" />
<asp:Image ImageUrl="img/separJeloChap/default.png" id="imgseparJeloChap" runat="server" />
<asp:Image ImageUrl="img/separJeloRast/default.png" id="imgseparJeloRast" runat="server" />
<asp:Image ImageUrl="img/saghf/default.png" id="imgsaghf" runat="server"/>
<asp:Image ImageUrl="img/sandogh/default.png" id="imgsandogh" runat="server" />
<asp:Image ImageUrl="img/separAghab/default.png" id="imgseparAghab" runat="server"/>
<asp:Image ImageUrl="img/separAghabChap/default.png" id="imgseparAghabChap" runat="server"/>
<asp:Image ImageUrl="img/separAghabRast/default.png" id="imgseparAghabRast" runat="server"/>
</div>
Функция html2canvas:
<script type="text/javascript">
function ConvertToImage(btnExport) {
html2canvas($("#imageBody")[0]).then(function (canvas) {
var base64 = canvas.toDataURL();
$("[id*=hfImageData]").val(base64);
__doPostBack(btnExport.name, "");
});
return false;
}
и это код, за которым холст сохраняется в базе данных:
Protected Sub ExportToImage(sender As Object, e As EventArgs)
' vehBodyId = 25
If Session("UserId") = "" Then
Response.Redirect("~/Default.aspx")
Else
vehBodyId = idMaker("select max(vehBodyId) from VehicleBody", "vehBody")
Session("vehBodyId") = vehBodyId
Dim base64 As String = Request.Form(hfImageData.UniqueID).Split(",")(1)
Dim bytes As Byte() = Convert.FromBase64String(base64)
'insert to db
sql = "insert into VehicleBody (vehBodyId,imgBody) values(@vehBodyId,@imgBody)"
If con.State = ConnectionState.Closed Then
con.ConnectionString = constr
con.Open()
End If
cmd.CommandText = sql
cmd.Parameters.Clear()
cmd.Parameters.Add("@vehBodyId", SqlDbType.Int).Value = vehBodyId
cmd.Parameters.Add("@imgBody", SqlDbType.Image).Value = bytes
cmd.CommandType = CommandType.Text
cmd.Connection = con
cmd.ExecuteNonQuery()
con.Close()
btnShowReport.Enabled = True
End If
1 ответ
Я наконец-то узнал, почему html2canvas не работал на ssl-сертификате, и я просто хочу поделиться, если у кого-то есть такая же проблема... потому что я связан с jquery и html2canvas... я загружаю их и связываю с моего сервера, и это работает правильно