首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sharepoint2013:在单击由微软提供的新javascript api for selectedShapeText提供的Visio按钮时出错

Sharepoint2013:在单击由微软提供的新javascript api for selectedShapeText提供的Visio按钮时出错
EN

Stack Overflow用户
提问于 2017-04-03 22:16:55
回答 1查看 222关注 0票数 0

我正在使用visio web access web部件.In VWA在SharePoint-2013中处理visio,我能够读取所有的形状,并在那里通过显示形状文本。现在微软发布了新的javascript api。它将获取visio文件的url,并在单击名为initEmbeddedframe的按钮时显示Visio。

他们还给出了另一个按钮,点击这个按钮,所选的形状文本就会捕捉到getSelectedShapeText()方法的display.But块。因为我是sharepoint和Visio的新手,所以我需要你们的帮助。

想提供的代码,需要嵌入在脚本编辑器网页的sharepoint网页aprt。

代码语言:javascript
复制
<script src='https://visioonlineapi.azurewebsites.net/visio.js' type='text/javascript'></script>

Enter Visio File Url:<br/>
<script language="javascript">
document.write("<input type='text' id='fileUrl' size='120'/>");
document.write("<input type='button' value='InitEmbeddedFrame' onclick='initEmbeddedFrame()' />");
document.write("<br />");
document.write("<input type='button' value='SelectedShapeText' onclick='getSelectedShapeText()' />");
document.write("<textarea id='ResultOutput' style='width:350px;height:60px'> </textarea>");
document.write("<div id='iframeHost' />");

var textArea;
// Loads the Visio application and Initializes communication between devloper frame and Visio online frame
function initEmbeddedFrame() {
        textArea = document.getElementById('ResultOutput');
	var url = document.getElementById('fileUrl').value;
	if (!url) {
	    window.alert("File URL should not be empty");
	}
	// APIs are enabled for EmbedView action only.   
	url = url.replace("action=view","action=embedview");
	url = url.replace("action=interactivepreview","action=embedview");
  
       var session = new OfficeExtension.EmbeddedSession(url, { id: "embed-iframe",container: document.getElementById("iframeHost") });
       return session.init().then(function () {
	    // Initilization is successful 
	    textArea.value  = "Initilization is successful";
	    OfficeExtension.ClientRequestContext._overrideSession = session;
	});
     }

// Code for getting selected Shape Text using the shapes collection object
function getSelectedShapeText() {

    Visio.run(function (ctx) { 	
	   var page = ctx.document.getActivePage();
 	   var shapes = page.shapes;
   	   shapes.load();
           return ctx.sync().then(function () {
     		   textArea.value = "Please select a Shape in the Diagram";
     		   for(var i=0; i<shapes.items.length;i++)
		    {
	 	      var shape = shapes.items[i];
         	      if ( shape.select == true)
	   	       {
	   	        textArea.value = shape.text;
	                return;
	               }
		    }
	  });
     }).catch(function(error) {
		textArea.value = "Error: ";
		if (error instanceof OfficeExtension.Error) {
			textArea.value += "Debug info: " + JSON.stringify(error.debugInfo);
		}
    });
}
</script>

问题是单击所选形状文本按钮时出现错误。

任何帮助将大大appreciated.Let我知道如果有任何问题,如果你还没有理解我的问题。

EN

回答 1

Stack Overflow用户

发布于 2017-06-04 05:09:31

您要输入哪个URL?它应该看起来像这样:

..../_layouts/15/WopiFrame.aspx?sourcedoc=%7BXXX-XXX-XX%7D&file=Drawing4.vsdx&action=embedView

也就是说,您可以在SharePoint中打开Visio图表,从地址栏复制URL并将其粘贴到该字段中(将XXXX替换为您的值)。如果不起作用,请将末尾的"default“替换为"embedView”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43187057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档