账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js如何动态引入script,然后require该引入的js
    30
    0

    问题描述

    我需要动态引入一个js,<script type="text/javascript" src="http://192.168.1.189:6789/arcgis_js_api/library/3.24/init.js"></script>
    现在需要动态从后台拼接src的地址,引入不写成固定的方便维护

    相关代码

    我试过这样引入js的方法,但控制台在调用initGisMap()的时候报错Uncaught SyntaxError: Unexpected token < .如果我直接在head里静态引入这个script地图是可以正常显示的.想问问这样写法是否正确,或有没有其他的思路实现这样的功能

    $(function() {
      //得到html的头部dom
      var theHead = document.getElementsByTagName('head').item(0);
      //创建脚本的dom对象实例
      var myScript = document.createElement('script');
      myScript.src = 'http://172.42.1.146:6789/arcgis_js_api/library/3.24/3.24/init.js';    
      myScript.type = 'text/javascript';  
      myScript.defer = true;              
      myScript.onload = function() {
        initGisMap()
      }
      theHead.appendChild(myScript);      
    });
    
    function initGisMap(){
      require(["esri/map",
          "esri/tasks/FindTask",
          "esri/tasks/FindParameters",
          "extras/ClusterLayer",
          "dojo/domReady!"
        ],
        function (Map, FindTask, FindParameters, ClusterLayer) {
          var map;
          map = new Map("map", {
            center: [112.28888, 31.38888], // 湖北
            slider: false,
            zoom: 0,
            scale: 5000000, //成都
            //最大缩放比例
            maxScale: 5000,
            //最小缩放比例
            minScale: 3000000,
            isPanArrows: true,
            logo: false,
          });
          //http://192.168.1.189:6080/arcgis/rest/services/hubei10/MapServer 公司GIS底层
          var mapServiceURL = "http://172.42.1.146:6080/arcgis/rest/services/HBGSOMP/MapServer" //联网中心GIS底层
          var layer = new esri.layers.ArcGISDynamicMapServiceLayer(mapServiceURL)
          map.addLayer(layer);
          map.on("load", mapLoaded);
          //  绑定滚轮事件
          map.on('mouse-wheel', function (o) {
            // 根据缩放等级禁用缩放
            var scale = Math.ceil(map.getScale())
            var minScale = map.getMinScale()
            var maxScale = map.getMaxScale()
            if (scale == minScale) {
              map.setScale(minScale)
              map.setZoom(0)
              map.centerAt([112.28888, 31.38888])
    
            }
          })
    
          function mapLoaded() {
            //窗口打开第一次不resize地图
            if (map && map.map) {
              map.map.resize(true);
              map.map.reposition();
            }
            // 绑定map对象到window
            window.map = map
            // 底图加载完后渲染功能页面
            start()
          }
    
          this.getClusterLayer = function (data) {
            return new ClusterLayer(data)
          }
        })
    
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 北海鸣 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部