|
For security reasons you can not access you operation system (including storage) from inside a JavaScript of you web page...
Running ActiveX is a very wrong way to do so - as
1. the client may allow access without really knowing what he's doing (the question about running ActiveX is not too informative)
2. it not works only in IE - that is a serious problem...
I'm not questioning your powers of observation; I'm merely remarking upon the paradox of asking a masked man who he is. (V)
|
|
|
|
|
Hi I would like to retrieve and image from SQL table (blob) and display that image in html web page. I have create a handler to retrieve the image but am stuck on how to get into javascript. Any ideas?
here my handler...
Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim ds As New DataSet()
Dim al As New ArrayList()
Using con As New SqlConnection(GetConnectionString("myconnection"))
Using cmd As New SqlCommand()
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "spRFIDocumentByRequestIDSelect"
cmd.Parameters.AddWithValue("@pRequestID", 531)
cmd.Connection = con
con.Open()
Dim sdr As SqlDataReader = cmd.ExecuteReader()
If sdr.HasRows Then
While sdr.Read()
al.Add(sdr(0).ToString())
al.Add(sdr(1).ToString())
al.Add(sdr(2).ToString())
context.Response.ContentType = "image/jpeg"
context.Response.Write(sdr(2))
End While
Else
al.Add("No Results")
End If
con.Close()
End Using
End Using
End Sub
and here is html and javascript...
<div id="fileDisplayArea"></div>
<script type="text/javascript">
$(document).ready(function () {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'GetImageHandler.ashx', true);
xhr.responseType = 'blob';
xhr.onload = function (e) {
if (this.status == 200) {
var blob = new Blob([this.response], { type: 'image/jpeg' });
var reader = new FileReader();
reader.onload = function (e) {
var thumbnail = reader.result;
fileDisplayArea.innerHTML = "";
var img = new Image();
img.src = reader.result;
alert(img.src);
fileDisplayArea.appendChild(img);
}
reader.readAsDataURL(blob);
}
};
xhr.send();
</script>
|
|
|
|
|
Is there a reason you're trying to load the image via javascript, instead of using the <img> tag?
<div id="fileDisplayArea">
<img src="GetImageHandler.ashx" />
</div>
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Tried that the image doesn't display. I'm sure if I need to do something on the handler side or the javascript side to get the image in the correct format.
|
|
|
|
|
Try loading GetImage.ashx directly in the browser to see what you get. It's possible that you have an unhandled exception being thrown from your handler code, which would explain why your image isn't showing.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Please forgive me, but i'm not sure what you mean by "loading GetImage.ashx directly in the browser"
|
|
|
|
|
When you go to your web page, you'll see an address at the top of the browser. Delete the name of the page (everything after the last "/" character), and type GetImage.ashx on the end. Press the Enter key, and the browser should request your image handler.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
That's pretty cool! I didn't know you could do that.
here is what I get...
System.Byte[]
|
|
|
|
|
OK, I see the problem. You're calling Response.Write , which accepts a String , but you're passing an array of Byte s. You need to call Response.BinaryWrite instead. If you have Option Strict turned on, you'll need to convert the Object to a Byte() first:
Dim imageBytes As Byte() = DirectCast(sdr(2), Byte())
context.Response.BinaryWrite(imageBytes)
Also:
- You should wrap the
SqlDataReader in a Using block. - You don't need to check
sdr.HasRows before calling the sdr.Read() method. - Since you're only returning one record, you can replace the
While sdr.Read() ... End While block with an If sdr.Read() Then ... End If block. - You should probably set the status code to
404 if you don't find an image to return. - I'm not sure what you're doing with the
ArrayList variable; you seem to store things in it, but never use it. You also have an unused DataSet variable at the top of your method.
The tidied-up version of your code is:
Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Using con As New SqlConnection(GetConnectionString("myconnection"))
Using cmd As New SqlCommand()
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "spRFIDocumentByRequestIDSelect"
cmd.Parameters.AddWithValue("@pRequestID", 531)
cmd.Connection = con
con.Open()
Using sdr As SqlDataReader = cmd.ExecuteReader()
If srd.Read()
Dim imageBytes As Byte() = DirectCast(sdr(2), Byte())
context.Response.ContentType = "image/jpeg"
context.Response.BinaryWrite(imageBytes)
Else
context.Response.StatusCode = 404
End If
End Using
End Using
End Using
End Sub
Once your handler is returning the image properly, you can replace your original javascript function with a simple <img> tag as per my first answer.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Thanks Richard, I just tried the similar thing and it worked...
|
|
|
|
|
hello i am use java script to change color at run time , But Problem is that when change color it set color at only one page from where i change color , How to set that color in all page ..?
I am using this code to change color
=========
var scrollHeight = '60px';
jQuery('#theme-change').click(function () {
if ($(this).attr("opened") && !$(this).attr("opening") && !$(this).attr("closing")) {
$(this).removeAttr("opened");
$(this).attr("closing", "1");
$("#theme-change").css("overflow", "hidden").animate({
width: '20px',
height: '22px',
'padding-top': '3px'
}, {
complete: function () {
$(this).removeAttr("closing");
$("#theme-change .settings").hide();
}
});
} else if (!$(this).attr("closing") && !$(this).attr("opening")) {
$(this).attr("opening", "1");
$("#theme-change").css("overflow", "visible").animate({
width: '226px',
height: scrollHeight,
'padding-top': '3px'
}, {
complete: function () {
$(this).removeAttr("opening");
$(this).attr("opened", 1);
}
});
$("#theme-change .settings").show();
}
});
jQuery('#theme-change .colors span').click(function () {
var color = $(this).attr("data-style");
setColor(color);
});
jQuery('#theme-change .layout input').change(function () {
setLayout();
});
var setColor = function (color) {
$('#style_color').attr("href", "css/style-" + color + ".css");
}
|
|
|
|
|
When you change the theme, you'll need to set a cookie. When the page loads, check to see if the cookie exists, and if it does, set the theme again based on the cookie value.
You can use the jQuery Cookie plugin[^] to create and read the cookie.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
I have to plane create a adblock system through the javascript. I am new one for this concept. Please anyone have any idea? Please guide me how to do this app.
|
|
|
|
|
You already asked this in the C++ forum; please do not crosspost the same questions.
Veni, vidi, abiit domum
|
|
|
|
|
|
Hello,
With JQuery, how can I copy items of one dropdownlist that have value starting with one word like "city/" to another dropdownllist?
Thanks
h.goli
|
|
|
|
|
You can - and Google can show you how exactly it's done, so...let me Google that for you[^].
I'm not questioning your powers of observation; I'm merely remarking upon the paradox of asking a masked man who he is. (V)
|
|
|
|
|
Hi guys, I have a static map (image) and I want to Have some items on it (div) showing a red dot, and on each red dot I show some details fetching by a JavaScript function from my database.
This Map has one level zoom.
Please Help me out or if you know of any tutorial please let me know
Thanxxxx
|
|
|
|
|
have you written any code for the same
|
|
|
|
|
|
HI,
I'm trying to get a WCF service to a JSON for Jquery Ajax, but the method is not even to be initiated now returns the error Bad Request.
Below is the Java Script code calling the service, Service Interface, Class of Service, the service Web.config, Global.asax service.
Detail if I access the GetData method for $.getJSON works, but at $.Ajax not.
Already with the AddStudant method does not work somehow.
Could anyone help telling me what's wrong?
JavaScript
$("#bt").click(function () {
var url = "http://localhost:8318/Service1.svc/AddStudant";
var data = { "ID": 1, "Name": "Ericsson Alves" };
var jdata = {};
jdata.student = data;
callAjax(url, 'json', 'POST',
function (result) {
alert(result);
},
JSON.stringify(jdata)
);
});
function callAjax(ajaxUrl, ajaxDataType, ajaxType, funcSucess, dataValues) {
$.ajax({
url: ajaxUrl,
dataType: ajaxDataType,
type: ajaxType,
data: dataValues,
processdata: true,
contentType: "application/json;charset-uf8"
})
.done(function (data) {
funcSucess(data);
})
.always(function (data) {
}).fail(function (xhr, status, errorThrown) {
alert(xhr.responseText);
});
}
Interface
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebInvoke(Method = "GET",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
ResponseFormat = WebMessageFormat.Json)]
Student GetData(int id);
[OperationContract]
[WebInvoke(Method = "POST",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json)]
Student AddStudant(Student student);
}
[DataContract]
public class Student
{
[DataMember]
public int ID { get; set; }
[DataMember]
public string Name { get; set; }
}
Service Class
[AspNetCompatibilityRequirements(RequirementsMode
= AspNetCompatibilityRequirementsMode.Allowed)]
public class Service1 : IService1
{
[WebInvoke(Method = "GET",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
ResponseFormat = WebMessageFormat.Json)]
public Student GetData(int id)
{
return new Student() { ID = id, Name ="Ericsson Alves" };
}
[WebInvoke(Method = "POST",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json)]
public Student AddStudant(Student student)
{
return new Student() { ID = student.ID , Name ="Ericsson Alves" };
}
}
Web.config Service
="1.0"
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5"/>
</system.web>
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="WebHttpBdg" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
</webHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="BehaviorDefault">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="AJAXWCFServiceAspNetAjaxBehavior">
<webHttp defaultOutgoingResponseFormat="Json" automaticFormatSelectionEnabled="true" />
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service name="TestWCFJsonAjax.Service.Service1" behaviorConfiguration="BehaviorDefault">
<endpoint address="" binding="webHttpBinding" bindingConfiguration="WebHttpBdg"
behaviorConfiguration="AJAXWCFServiceAspNetAjaxBehavior"
name="Service1" contract="TestWCFJsonAjax.Service.IService1" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" crossDomainScriptAccessEnabled="true" />
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<directoryBrowse enabled="true"/>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
Global.asax Service
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.Add(new ServiceRoute("", new WebServiceHostFactory(), typeof(Service1)));
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
HttpContext.Current.Response.End();
}
}
}
Ericsson Alves
|
|
|
|
|
Hi,
How to load depends upon country datetime format?
how to load datetime format depends upon the country ?
example 1:
when i am select India ,it will display in textbox : 06/Feb/2014
india dd-MM-yyyy
example 2:
when i am select USA ,it will display in textbox : Feb/06/2014
USA mm/dd/yyyy
<html>
<head><title> date time</title> </head>
<script type ="text/javascript" src="jquery.js"></script>
<script type ="text/javascript" src="jquery.jdpicker.js"></script>
<body>
<link rel="stylesheet" href="jdpicker.css" type="text/css" media="screen" />
<div><div class="jdpicker_w"><input id="test1" type="text" name="test"></input>
</body>
<script>
$('#test1').jdPicker({
date_format:"dd MM YYYY",
});
$(document).ready(function(){
$('#your_input').jdPicker();
});
$(document).ready(function(){
$('#your_input').jdPicker({
start_of_week:2,
show_week:1
});
});
Thanks,
Karthikeyan,Bangalore
|
|
|
|
|
in the old days we used to call this 'locale' based programming - I believe the correct term these days is 'culture' - I'd do a search on 'javascript culture datetime' or terms like that, and see what it came back with - Im guesing javascript is locale/culture sensitive, you just need the correct library(ies)
'g'
|
|
|
|
|
Try the Globalize[^] library.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
I have a code of piece ie:
m_sHTML = ""
m_sHTML = m_sHTML & "var x = (screen.availWidth - 12 - 375) / 2;"
m_sHTML = m_sHTML & "var y = (screen.availHeight - 48 - 200) / 2;"
m_sHTML = m_sHTML & "showModalDialog('xmHarmony.asp?WCI=changePassword','_blank',"
m_sHTML = m_sHTML & "'resizable ;status ;scrollbars=0;help ;unadorned:1;dialogWidth:375px;"
m_sHTML = m_sHTML & "dialogHeight:200px;dialogLeft=' + x + 'px;dialogTop=' + y + 'px;');"
m_sHTML = m_sHTML & ""
Response.Write (m_sHTML)
and output on ie10:
<html><head><script language='javascript'>var x = (screen.availWidth - 12 - 375) / 2;var y = (screen.availHeight - 48 - 200) / 2;showModalDialog('xmHarmony.asp?WCI=changePassword','_blank','resizable ;status ;scrollbars=0;help ;unadorned:1;dialogWidth:375px;dialogHeight:200px;dialogLeft=' + x + 'px;dialogTop=' + y + 'px;');<
this is popup syntax error due not closing properly but in main code closed properly .Please suggest..
|
|
|
|
|