Javascript 管理弹出窗口中的Html文本

Javascript 管理弹出窗口中的Html文本,javascript,string,popup,openlayers,Javascript,String,Popup,Openlayers,我正在使用OpenLayer弹出窗口。 初始化时,需要一个参数来包含弹出窗口中显示的html。 此参数是javascript字符串 我有一个冲突,一方面html文本很长,所以我更喜欢将它放在html文件中,并将文件读取到变量中 另一方面,html依赖于其他局部变量,因此如果我将其保留在原位,我可以连接一些字符串和局部变量,以组成包含html文本的最终变量。但它是非常长和丑陋的代码 也许有经验的javascript程序员可以帮我找到这个问题的设计解决方案 感谢使用OpenLayers,您可以使用O

我正在使用OpenLayer弹出窗口。 初始化时,需要一个参数来包含弹出窗口中显示的html。 此参数是javascript字符串

我有一个冲突,一方面html文本很长,所以我更喜欢将它放在html文件中,并将文件读取到变量中

另一方面,html依赖于其他局部变量,因此如果我将其保留在原位,我可以连接一些字符串和局部变量,以组成包含html文本的最终变量。但它是非常长和丑陋的代码

也许有经验的javascript程序员可以帮我找到这个问题的设计解决方案


感谢使用OpenLayers,您可以使用OpenLayers.loadURL函数从服务器检索HTML

如果希望将本地变量传递到服务器端HTML,可以设置一个简单的处理程序来接受变量,并将这些变量集成到一些静态HTML中(使用字符串格式或模板)


如果您使用的是.NET,则.ashx文件可以执行此操作。有关示例,请参见

另一种解决方案是使用Ajax请求加载文件,然后在弹出窗口中打印内容

使用JQuery:

$.get('myfile.php',function(content){
   var popup = new OpenLayers.Popup("popupid",
         new OpenLayers.LonLat(mouseX,mouseY),         
         new OpenLayers.Size(360,200),               
         content,
         true);  
   map.addPopup(popup);
});

Ajax请求完成后,您可以创建弹出窗口,并用以前加载的文件内容填充它。

我建议使用geographikas解决方案,并尝试使用不同的js类来提高可维护性和可读性。不要在同一个对象中执行所有操作,创建您自己的popup对象,该对象继承或使用OpenLayers.popup.archored或其他内容,并从中调用Ajax服务器。这样,您就不会让其他代码与此混淆。还可以方便地在需要时重复使用和替换

我会选择这样的(未经测试的!):

在一个名为“mypopup.js”的文件中

并称之为:

 var popup = new mynamespace.mypopup({id: 'whatever', lonlat: myLonLat});

到目前为止你有什么代码?
 var popup = new mynamespace.mypopup({id: 'whatever', lonlat: myLonLat});