14 messaggi dal 28 marzo 2014
www.sigmabeta.it
Salve.
Ho scritto una funzione JS su modulo formato *.js che dovrebbe venire lanciata da una funzione scritta su un code behind formato *.aspx.vb .
Sebbene non venga restituito alcun errore, la funzione JS non viene lanciata (ho provato a mettere un alert('Hello World') che non appare. Provato in localhost e su host Aruba.

In pratica la funzione JS apre una mappa di Google Maps ed e' copiata da Helpdesk di Google stesso.

Allego il codice VB e JS ... aiuto!

VB:
Partial Class _Default
    Inherits System.Web.UI.Page

Public Sub form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim csname As String = "Initialize"
Dim csurl As String = "../js/GoogleMaps.js"
Dim cstype As Type = Me.GetType()

' Referenziare ClientScriptManager dalla Page class.
Dim cs As ClientScriptManager = Page.ClientScript
' Controllare se già registrato.
If (Not cs.IsClientScriptBlockRegistered(cstype, csname)) Then
    cs.RegisterClientScriptBlock(cstype, csname, ResolveClientUrl(csurl), True)
End If

JS (copiato da Helpdesk di Google):
src="https://maps.googleapis.com/maps/api/js"
   
function Initialize() {
  var mapCanvas = document.getElementById('map');
  var mapOptions = {
    center: new google.maps.LatLng(5.1111093, -1.2466639, 17),
              zoom: 14,
    mapTypeId: google.maps.MapTypeId.ROADMAP
          }
    var map = new google.maps.Map(mapCanvas, mapOptions)

google.maps.event.addDomListener(window, 'load', initialize);

La funzione JS se scritta su pagina HTML genera una mappa Google senza alcuna eccezione.

C'e' inoltre del codice HTML sulla pagina *.aspx dove la mappa dovrebbe apparire:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!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 runat="server">
    <title>GOOGLEMAPS</title>
<html>
  <head>
   <style>
  #map {
    width: 500px;
    height: 400px;
    background-color: #CCC;
  }
</style>
 </head>
  <body>
    <div id="map"></div>
  </body>
</html>

Ringrazio per l'interesse prestato e mi scuso per la lunghezza del messaggio.
Sergio.
Modificato da Sigmabeta il 27 aprile 2016 12.36 -

Sergio
It's too late to be late again!
50 messaggi dal 21 novembre 2014
Ciao
forse ti può servire questo script. Lo potresti adattare a quello che vuoi fare.
Protected Sub btn_InviaDati_Click(sender As Object, e As EventArgs)
  Dim code As String = "" &
  "function Initialize() {" &
  "var mapCanvas = document.getElementById('map');" &
  "var mapOptions = {" &
  "  center: new google.maps.LatLng(5.1111093, -1.2466639, 17)," &
  "            zoom: 14," &
  "  mapTypeId: google.maps.MapTypeId.ROADMAP" &
  "        }" &
  "  var map = new google.maps.Map(mapCanvas, mapOptions)" &

  "google.maps.event.addDomListener(window, 'load', initialize);" 
  ScriptManager.RegisterStartupScript(Me, GetType(Page), "ApplicaJs", code, True)
End Sub


Mentre nell' head della pagina ti importi
<script src="https://maps.googleapis.com/maps/api/js" ></script>
14 messaggi dal 28 marzo 2014
www.sigmabeta.it
Ciao e grazie per la risposta.
Ho provato quanto suggerito ma noto - avendo inserito nel codice il solito alert('Hello World') - che non lo lancia neanche.
Va forse importato qualche particolare namespace ?

Sergio
It's too late to be late again!
50 messaggi dal 21 novembre 2014
Ciao
ecco questo esempio qua funziona certamente:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
   Dim code As String = ""
   code += "function Mostra() {alert ('hello word');}"
   code += " setTimeout("" Mostra()"",100);"
   ScriptManager.RegisterStartupScript(Me, GetType(Page), "ApplicaJs", code,   True)
End Sub

Mi ero dimenticato di scrivere il setTimeout, che fa scatenare la funzione, che in questo caso ho chiamato "Mostra", subito dopo il caricamento della pagina(100, sarebbe 0,1 secondi).
14 messaggi dal 28 marzo 2014
www.sigmabeta.it
Grazie ancora.
Così come lo hai scritto tu funziona ma funziona anche senza il timeout.
Se però inserisco le righe che riguardano Google Maps non accade nulla, nemmeno il messaggio.
Sulla giustezza del codice di Google Maps non ho dubbi perché se usato da solo su un foglio HTML da' origine ad una mappa.
Che via si puo' ancora tentare?

Sergio
It's too late to be late again!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.