TIdHTTPServer
나는 태그에 <script language="javascript">
태그가있는 브라우저로 HTML 파일의 자바 스크립트 코드를 보내는 TIdHTTPServer
입니다. html 파일에 액세스 할 수 없기 때문에 내용을 변경할 수 없습니다.Indy TIdHTTPServer OnCommandGet html로 된 자바 스크립트가 실행되지 않습니다.
procedure TMainForm.HTTPServerCommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
responseMemoryStream : TMemoryStream;
begin
responseMemoryStream := TMemoryStream.Create;
try
AResponseInfo.ContentType := 'text/html';
AResponseInfo.ContentEncoding := 'UTF-8';
AResponseInfo.CharSet := 'UTF-8';
responseMemoryStream.LoadFromFile(ExtractFilePath(Application.ExeName) + 'index.html');
AResponseInfo.ContentStream := TMemoryStream.Create;
TMemoryStream(AResponseInfo.ContentStream).LoadFromStream(responseMemoryStream);
finally
responseMemoryStream.Free;
end;
end;
난 후 가끔 자바 스크립트를로드하는 인터넷 브라우저에서 GET
명령을 할 때하지만 그렇지 않을 때도 있습니다 - 내가 사용하는 경우 :이 같은 브라우저에이 파일의 내용을 보낼 HTTPServerCommandGet
를 사용 파이어 폭 아무런 문제가 없지만, 크롬 또는 을 사용하면 자바 스크립트가 실행되지 않습니다. 거기에 AResponseInfo
변수로 어떻게 든 자바 스크립트 코드의 실행을 강제하는 방법이 있나요 아니면 내가이 문제를 해결하기 위해 할 수있는 무엇입니까?
이는 index.html
의 일부 모습입니다 :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta charset=utf8 />
<title>My title</title>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script language="javascript">
var map;
var flag_for_map_massage = 0;
var map_marker = 0;
function initmap()
{
var html;
var map_divtxt = "<div id=\"map_canvas\" style=\"width:200px;height:150px;\" ></div>";
document.getElementById("google_map").innerHTML = map_divtxt;
var latlng = new google.maps.LatLng(100.12345, 200.12345);
var options = {
zoom: 17,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map1 = new google.maps.Map(document.getElementById("map_canvas"), options);
var html = "<table>" +
"<tr><td>GMBH Address</td> </tr>";
infowindow = new google.maps.InfoWindow({
content: html
});
var marker1 = new google.maps.Marker({
position: new google.maps.LatLng(100.12345, 200.12345),
map: map1
});
// infowindow.open(map1, marker1);
google.maps.event.addListener(marker1, "click", function() {
infowindow.open(map1, marker1);
});
}
</script>
</head>
<body onload="initmap();">
<div class="entry">
<div id="google_map">
</div>
</div>
</body>
</html>
이 코드 조각이 "var latlng = new google.maps.LatLng (100.12345, 200.12345);'''OnCommandGet''을 보낼 때''(그리고 그 이후의 모든 것들은) 실행될 수 없지만 브라우저 자체에서 파일을 열면 괜찮습니다. –
@whosrdaddy - 아무데도 - 분명히 자동으로로드됩니다. (파일을 로컬로로드 한 후 브라우저에서 요소를 검사 할 때 "
"태그에 3 개의 Google Maps API ''', ''파이어 폭스''에서만 작동했습니다.''IE''와''Chrome''은 맵을로드하지 못했습니다. –