Ms word 如何从web word实例检索查询字符串值

Ms word 如何从web word实例检索查询字符串值,ms-word,office-js,office-addins,word-addins,Ms Word,Office Js,Office Addins,Word Addins,我正在为Word Online创建一个web插件。使用Word Online打开文档时,URL将包含文件名。我正在尝试检索该文件名 为了检索此URL,我尝试使用window.locationhref,但它正在获取托管的加载项web应用程序URL。是否有可能获得单词在线URL 示例代码: function getParameterByName(name, url) { if (!url) url = window.location.search; name = name.r

我正在为Word Online创建一个web插件。使用Word Online打开文档时,URL将包含文件名。我正在尝试检索该文件名

为了检索此URL,我尝试使用
window.location
href,但它正在获取托管的加载项web应用程序URL。是否有可能获得单词在线URL

示例代码:

function getParameterByName(name, url) {
    if (!url) url = window.location.search;
        name = name.replace(/[\[\]]/g, '\\$&');
        var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
            results = regex.exec(url);
        if (!results) return null;
        if (!results[2]) return '';
        return decodeURIComponent(results[2].replace(/\+/g, ' '));
    }
你应该用什么来代替? 您应该使用这里定义的Office.js API

Office.context.document.url
这将返回您可以使用的内容

为什么你的解决方案不起作用? 不幸的是,由于iFrame的安全性要求,这不可能以您试图实现它的方式实现。Word Online使用iFrame托管外接程序,除非特别允许,否则从iFrame访问父窗口通常非常受限

但是,您可以通过查看
referer
标题来获取父窗口的基本主机url,但基本上就是这样。我理解这对您来说是不够的,这就是为什么我建议使用API这个词

您可以在下面看到更多关于iFrame的文档:

  • iFrame规范文档:
  • 获取加载帧的url(父url)时:
  • 有关如何使用
    postMessage
    API在父级和iFrame之间进行通信的更多信息,如果您被列入白名单(您没有被列入白名单):
您应该使用什么替代? 您应该使用这里定义的Office.js API

Office.context.document.url
这将返回您可以使用的内容

为什么你的解决方案不起作用? 不幸的是,由于iFrame的安全性要求,这不可能以您试图实现它的方式实现。Word Online使用iFrame托管外接程序,除非特别允许,否则从iFrame访问父窗口通常非常受限

但是,您可以通过查看
referer
标题来获取父窗口的基本主机url,但基本上就是这样。我理解这对您来说是不够的,这就是为什么我建议使用API这个词

您可以在下面看到更多关于iFrame的文档:

  • iFrame规范文档:
  • 获取加载帧的url(父url)时:
  • 有关如何使用
    postMessage
    API在父级和iFrame之间进行通信的更多信息,如果您被列入白名单(您没有被列入白名单):

正如建议的那样,我使用了Office.context.document.url,但使用它,我得到的是文档的绝对路径(示例:),而不是实际的在线单词urlyeah-但看起来您在该单词中有文件名,对吗?我使用Office.context.document.url来获取在线单词的url,即,但输出是。我的要求是阅读完整的url和相关的查询字符串,除非您要查找的元信息出现在
Office.context.document
中,否则我认为您无法获取它。我已经解释了您遇到的限制,您无法读取iFrame的父级信息。您说过您正在尝试获取此api中的文件名。你只需要读它的最后一部分。如果您希望获取文件名以外的查询字符串,我认为这是不可能的。是的。非常感谢您帮助查找文件名。我的实际问题陈述是将一些信息从源应用程序传递给AddIn。这可能不仅仅是文件名。我的想法是通过自定义查询字符串传递额外的参数,使用AddinAPI读取它,然后加载特定于参数的数据。如果您说使用此方法无法读取querystring,那么您是否可以建议其他方法将参数从源应用程序传递到word addin?正如建议的那样,我使用了Office.context.document.url,但通过此方法,我获得了文档的绝对路径(示例:)不是真正的在线单词urlyeah-但看起来你在那一个文件名中有文件名,对吗?我正在使用Office.context.document.url获取在线单词的url,也就是说,但是输出是。我的要求是阅读完整的url和相关的查询字符串,除非您要查找的元信息出现在
Office.context.document
中,否则我认为您无法获取它。我已经解释了您遇到的限制,您无法读取iFrame的父级信息。您说过您正在尝试获取此api中的文件名。你只需要读它的最后一部分。如果您希望获取文件名以外的查询字符串,我认为这是不可能的。是的。非常感谢您帮助查找文件名。我的实际问题陈述是将一些信息从源应用程序传递给AddIn。这可能不仅仅是文件名。我的想法是通过自定义查询字符串传递额外的参数,使用AddinAPI读取它,然后加载特定于参数的数据。如果您说使用此方法无法读取querystring,那么您可以建议我将参数从源应用程序传递到word addin的任何其他方法吗?