Provider Hosted App中使用JOM问题
在使用SharePoint 2013的JOM时,出现以下问题:
ReferenceError: SP is not defined
经反复试验和搜索,得出以下两种方式:
一、直接引用JS文件,引用顺序很重要:
<script type="text/javascript" src="https://nn.sharepoint.com/teams/ap1/gct/_layouts/15/MicrosoftAjax.js"></script>
<script type="text/javascript" src="https://nn.sharepoint.com/teams/ap1/gct/_layouts/15/SP.Runtime.js"></script>
<script type="text/javascript" src="https://nn.sharepoint.com/teams/ap1/gct/_layouts/15/SP.js"></script>
<script type="text/javascript" src="https://nn.sharepoint.com/teams/ap1/gct/_layouts/15/SP.RequestExecutor.js"></script> <script src="https://nn.sharepoint.com/teams/ap1/gct/SiteAssets/jquery-1.9.1.js"></script> <script type="text/javascript">
var hostweburl ="https://nn.sharepoint.com/teams/ap1/gct"; $(document).ready(function () {
var scriptbase = hostweburl + "/_layouts/15/";
//ExecuteOrDelayUntilScriptLoaded(initializePage, "sp.js");
initializePage();
}); function initializePage()
{
var context = SP.ClientContext.get_current();
var user = context.get_web().get_currentUser(); // This code runs when the DOM is ready and creates a context object which is needed to use the SharePoint object model
$(document).ready(function () {
getUserName();
}); // This function prepares, loads, and then executes a SharePoint query to get the current users information
function getUserName() {
context.load(user);
context.executeQueryAsync(onGetUserNameSuccess, onGetUserNameFail);
} // This function is executed if the above call is successful
// It replaces the contents of the 'message' element with the user name
function onGetUserNameSuccess() {
$('#message').text('Hello ' + user.get_title());
} // This function is executed if the above call fails
function onGetUserNameFail(sender, args) {
alert('Failed to get user name. Error:' + args.get_message());
}
}
二、使用Jquery 的$.getScript 方法
<script type="text/javascript">
var hostweburl ="https://nike.sharepoint.com/teams/ap1/gctech"; $(document).ready(function () {
var scriptbase = hostweburl + "/_layouts/15/";
var scriptBase = hostweburl + "/_layouts/15/";
$.getScript(scriptBase + "MicrosoftAjax.js").then(function (data) {
return $.getScript(scriptbase + "SP.Runtime.js");
}).then(function (data) {
return $.getScript(scriptbase + "SP.js");
}).then(function (data) {
$.getScript(scriptBase + "SP.RequestExecutor.js");
}).then(function (data) {
alert("Load as order");
/*
var ctx = new SP.ClientContext(appWebUrl),
factory = new SP.ProxyWebRequestExecutorFactory(appWebUrl),
web; ctx.set_webRequestExecutorFactory(factory);
web = ctx.get_web();
ctx.load(web);
ctx.executeQueryAsync(function() {
// log the name of the app web to the console
console.log(web.get_title());
}, function(sender, args) {
console.log("Error : " + args.get_message());
});
*/
});
</script>
Provider Hosted App中使用JOM问题的更多相关文章
- 在iOS APP中使用H5显示百度地图时如何支持HTTPS?
现象: 公司正在开发一个iOSAPP,使用h5显示百度地图,但是发现同样的H5页面,在安卓可以显示出来,在iOS中就显示不出来. 原因分析: 但是现在iOS开发中,苹果已经要求在APP中的所有对外连接 ...
- 分享 Ionic 开发 Hybrid App 中遇到的问题以及后期发布 iOS/Android 的方方面面
此篇文章主要整理了最近在使用 Ionic 开发 Hybrid App 过程中遇到的一些疑难点以及后期发布生成 iOS 和 Android 版本过程中的种种问题. 文章目录 Ionic 简介和项目需求介 ...
- 【iOS开发】在 App 中加入 AdMob 广告 - 入门介绍与编程技巧
前言 虽然在App中加入广告来盈利是比较低级的商业化方式,但对于个人开发者或者小团队开发者来说,做出一个简单易用的免费小工具(举个栗子),在里面加入一些广告,如果用的人多,也是可以带来一些可观的收入的 ...
- 我刚知道的WAP app中meta的属性
之前我一直做的都是WEB前端开发,来北京以后面试了一个移动前端开发,WAP前端开发. 其实在原来公司的时候也做过这方面的开发,可面试的时候面试官问我,要想强制让文档与设备的宽度保持1:1,mate标签 ...
- 在app中打开appStore中其他app
var str = "https://itunes.apple.com/cn/app/zhang-jiange-hao-tou-zi-ke/id402382976?mt=8"//这 ...
- 在 C# App 中嵌入 Chrome 浏览器使用 CefSharp
介绍 以前曾试过在app中整合一个可靠又快速的web浏览器吗? 在本文中,你会学到如何轻松地将奇妙的CefSharp网页浏览器组件(基于Chromium)集成到你的C# app中. 然后,你可以使用此 ...
- 仿各种APP将文章DOM转JSON并在APP中以列表显示(android、ios、php已开源)
背景 一直以来都想实现类似新闻客户端.鲜城等文章型app的正文显示,即在web editor下编辑后存为json,在app中解析json并显示正文. 网上搜过,没找到轮子.都是给的思路,然后告知是公司 ...
- 我刚知道的WAP app中meta的属性(转载)
之前我一直做的都是WEB前端开发,来北京以后面试了一个移动前端开发,WAP前端开发. 其实在原来公司的时候也做过这方面的开发,可面试的时候面试官问我,要想强制让文档与设备的宽度保持1:1,mate标签 ...
- 解决“iOS 7 app自动更新,无法在app中向用户展示更新内容”问题
转自cocoachina iOS 7能在后台自动app,这对开发者来说和用户都很方便,但是还是有一些缺点.用户不会知道app本次更新的内容,除非他们上到app的App Store页面去查看.开发者也会 ...
随机推荐
- 轻松自动化---selenium-webdriver(python) (六)
本节知识点: 操作对象: · click 点击对象 · send_keys 在对象上模拟按键输入 · clear 清除对象的内容,如果可以的话 WebElement 另一些常用方法: · text ...
- js cookie存储方法
/*! * jQuery Cookie Plugin v1.4.0 * https://github.com/carhartl/jquery-cookie * * Copyright 2013 Kla ...
- SQL Server代理(8/12):使用SQL Server代理外部程序
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 在这个系列的上篇文章里,你学习如何使用SQ ...
- SQL --分组【Group By】
Group By:对数据进行分组,分组之后的数据就是“分组信息”,和原来表的信息,就没有联系了, 分组之后,可以取到分组数据,就是根据什么字段分组,就能取到字段的名字了.还能使用聚合函数. Group ...
- sqlserver 服务器主体 无法在当前安全上下文下访问数据库
今天使用sqlserver,发现了一个问题,就是使用 insert into 数据库名.dbo.表名(字段) values(值) 这样语句的时候,会返回错误: sqlserver 服务器主体 无法在当 ...
- C#的变迁史 - C# 4.0 之多线程篇
在.NET 4.0中,并行计算与多线程得到了一定程度的加强,这主要体现在并行对象Parallel,多线程Task,与PLinq.这里对这些相关的特性一起总结一下. 使用Thread方式的线程无疑是比较 ...
- 介绍开源的.net通信框架NetworkComms框架 源码分析(十四)StreamTools
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 许可是 ...
- 炉石传说 C# 开发笔记(6月底小结)
炉石传说的开发,已经有30个工作日了. 关于法术的定义方法,有过一次重大的变更:法术效果是整个炉石的核心,正是因为丰富的法术效果,才造就了炉石的可玩性. 原来构思的时候,对于法术效果没有充分的理解,所 ...
- MEF入门之不求甚解,但力求简单能讲明白(三)
上一篇我们已经获得了制定类型的实例,但我们还无法对其进行有效的控制. 我们用ExportMetadata属性可以对具体的某个实例做标记,相当于命名.这么理解不知道对否. 在IPart项目中添加一个接口 ...
- 设置MySQL服务自动运行
一般情况下,MySQL安装以后是自动运行的,不知道我这台机器是什么原因,MySQL不能自动运行,每次开机后都要手动运行mysqld.exe,比较麻烦,于是用以下方法将MySQL自动启动: 1. 运行c ...