CDHtmlDialog中未定义的jQuery

时间:2014-04-07 11:41:05

标签: jquery mfc

当我尝试使用jQuery时,它说jQuery是未定义的 在使用jquery做任何事之前我都包含了jquery.js。

我的HTML

<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge"> 
<script type="text/javascript" src="ajax/JS/jquery.js"></script>
<!-- Shared assets -->        
<link rel="stylesheet" type="text/css" href="ajax/CSS/style.css">        
<title></title>  
<script>
var $j = jQuery.noConflict;
</script> 
</head>

但是当我给出jquery文件的完整路径时,它开始工作

<script type="text/javascript" src="d:/htmldialog/ajax/JS/jquery.js"></script>

问题是我无法给出完整的路径。在我的

CDHTMLDialogDlg::OnInitDialog 
Navigate (strUrl); 

4 个答案:

答案 0 :(得分:0)

首先,考虑将内容交付网络(CDN)用于公共库。它们跨页面缓存,并且可以通过相当大的块来增加页面的加载时间。以下是jQuery的https://developers.google.com/speed/libraries/devguide#jquery

的Google CDN

其次,看起来您的相对路径很可能已关闭。你的CSS加载了吗?您的实际.html文件位于何处。

除非绝对必须离线运行或拥有特定的jQuery版本,否则请使用CDN。

答案 1 :(得分:0)

我认为路径上的一切都很好。但您必须在regedit.exe下的yourappname.exe下创建一个DWORD值,其值为7777,其值为{{1}},

32位:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION

64位:HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION

更多参考click here

答案 2 :(得分:0)

首先感谢大家的回答和帮助 我找到了解决我提到的问题的方法。由于WinAppy声明需要在注册表中添加密钥 1. [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ MAIN \ FeatureControl \ FEATURE_BROWSER_EMULATION] 2.需要为JS和CSS提供完整的路径。这可以使用JAVAScript完成      

        var loc = window.location.toString();
        loc = loc.replace("res://", "");
        loc = loc.split("\\").join("/");
        var imageRoot = loc.substr(0, loc.lastIndexOf("Debug"));
        imageRoot = imageRoot + "ajax//images//";
        var url = new Array();
         url[0] = loc.substr(0, loc.lastIndexOf("Debug")) + "ajax//JS//jquery.js";
         url[1] = loc.substr(0, loc.lastIndexOf("Debug")) + "ajax//JS//jquery.jcarousel.min.js";
         url[2] = loc.substr(0, loc.lastIndexOf("Debug")) + "ajax//JS//jcarousel.ajax.js";

         for (i = 0; i < url.length; i++) {
             var head = document.getElementsByTagName('head')[0];
             var script = document.createElement('script');
             script.type = 'text/javascript';
             script.src = url[i];
             head.appendChild(script);

         }

    </script>

3. document.getElementById无效的另一个问题的解决方案是调用它     window.onload = function(){     document.getElementById(“Title_Bar”)。src = imageRoot +“Title_Bar.png”;     } 如果在CHtmlDialog中使用默认调用。换句话说,如果不使用Navigate(strUrl);

答案 3 :(得分:0)

我没有得到上述建议,但是当我将我的JavaScript与我的html一起放入我的资源时,我得到了以下工作:

<script type="text/javascript" src="res:/JS/#2300"></script>

其中#2300是我的资源ID的值,指的是包含JavaScript的自定义资源。 JS是我创建的自定义资源类型。

希望有人帮助。