gpt4 book ai didi

javascript - 如何从 ASP 代码隐藏调用 JavaScript 函数?

转载 作者:行者123 更新时间:2023-12-03 07:34:38 25 4
gpt4 key购买 nike

下面是我的 vb.net 代码

ClientScript.RegisterStartupScript([GetType](), Guid.NewGuid().ToString(), "javascript:MarkerFunction('" & dt.Rows(i)("vehno") & "','" & dt.Rows(i)("trackdt") & "','" & Lat & "','" & Lon & "','" & VehImage & "','" & dt.Rows(i)("City") & "','" & dt.Rows(i)("Speed") & "');", True)

下面是我的 JavaScript 函数

<script type="text/javascript">                     
function init()
{
map = new OpenLayers.Map("basicMap");
var mapnik = new OpenLayers.Layer.OSM();
var fromProjection = new OpenLayers.Projection("EPSG:4326"); // Transform from WGS 1984
var toProjection = new OpenLayers.Projection("EPSG:900913"); // to Spherical Mercator Projection
var position = new OpenLayers.LonLat(78.0000,21.0000).transform( fromProjection, toProjection);
var zoom = 5;
map.addLayer(mapnik);
map.setCenter(position, zoom );

var vectorLayer = new OpenLayers.Layer.Vector("Overlay");

function MarkerFunction(VehNo,Trackdt,Lat,Lon,VehImage,City,Speed)
{
alert('hii');
var feature = new OpenLayers.Feature.Vector
(
new OpenLayers.Geometry.Point( lon, lat ).transform(fromProjection, toProjection),
{description: 'Vehicle No : ' + VehNo+'<br>Track Date : ' + Trackdt +'<br> City : '+ City + '<br> Speed : '+ Speed } ,
{externalGraphic: VehImage, graphicHeight: 25, graphicWidth: 21, graphicXOffset:-12, graphicYOffset:-25 }
);
vectorLayer.addFeatures(feature);
}


//Add a selector control to the vectorLayer with popup functions
var controls =
{
selector: new OpenLayers.Control.SelectFeature(vectorLayer, { onSelect: createPopup, onUnselect: destroyPopup })
};

function createPopup(feature)
{
feature.popup = new OpenLayers.Popup.FramedCloud("pop",
feature.geometry.getBounds().getCenterLonLat(),
null,
'<div class="markerContent">'+feature.attributes.description+'</div>',
null,
true,
function() { controls['selector'].unselectAll(); }
);

map.addPopup(feature.popup);
}

function destroyPopup(feature)
{
feature.popup.destroy();
feature.popup = null;
}

map.addControl(controls['selector']);
controls['selector'].activate();

map.addLayer(vectorLayer);
}
</script>

<body onload="init()">
<div id="basicMap">
</div>
</body>

我想从代码隐藏文件中调用 MarkerFunction 但无法调用它。我尝试了一切,但我不知道我的代码有什么问题。任何帮助将不胜感激。提前致谢...

最佳答案

您不能仅从服务器 vb.net 代码在客户端上执行 JavaScript。这应该如何运作?该代码位于两台不同的计算机上,仅通过 HTTP 连接,这是无状态的。因此,当您的客户端关闭连接时,您的服务器将无法访问它。

考虑一下,您也可以有多个客户端。

您的服务器无法知道您的网页是否仍在客户端上打开。这是HTTP 的概念,而不是asp.NET 的概念。

为了能够调用客户端上的某些内容,客户端需要保持打开的连接。

根据您的用例,您可以进行简单的轮询(您确实不应该,但在黑暗的日子里我们都这样做了),长轮询( cometd >),或使用 WebSocket。

我希望这可以回答您这个问题,并为您的 Google 带来很多帮助。

关于javascript - 如何从 ASP 代码隐藏调用 JavaScript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35667948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com