【问题标题】:Include Javascript made from plugin into html button将插件制作的 Javascript 包含到 html 按钮中
【发布时间】:2012-09-13 09:17:00
【问题描述】:

我们有 a plugin 生成一个 JavaScript 文件。我们想从一个 html 按钮中运行/执行这个 js 文件,例如:

<input type=button value="Open js" onclick="javascript:window.open('http://jira.bltelecoms.net:8080/s/en_UScyxsyn/664/8/1.0.23-beta/_/download/batch/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector.js?collectorId=e125274b','_self')" />

我们使用名为 Jira 和 Confluence 的第三方 Web 应用程序,它是 Atlassian 套件的一部分。它是一个问题跟踪软件,它使用一个插件来创建这个 JavaScript 文件,该文件会弹出一个类似于灯箱的窗口,您可以在其中填写数据并发送它。默认情况下,它会在页面的一侧触发,我们希望如何从标准的 html 按钮执行它。有没有办法做到这一点?

【问题讨论】:

  • 脚本的作用是什么?
  • 我刚刚尝试过,它会打开 .js(您期望什么?)。问题是如何在 HTML 页面上包含此脚本?
  • 我们使用名为 jira 和 confluence 的第三方 Web 应用程序,它是 atlassian 套件的一部分。它是一个问题跟踪软件,它使用一个插件来创建这个 javascript 文件,该文件会弹出一个类似于灯箱的窗口,您可以在其中填写数据并发送它。默认情况下,它会在页面的一侧触发,如果有意义的话,我们如何从标准的 html 按钮执行它?
  • 沃伦,请在问题中发表您的评论,并澄清您所说的“不正确”是什么意思。您的意思是说“它加载了 javascript 文件,但我们希望它执行 javascript 文件中的代码?”

标签: javascript html button include


【解决方案1】:

您可以创建一个包含脚本的新页面,然后单击打开此页面。

或者这个怎​​么样:

function loadScript() {
  var s = document.createElement('script');
  s.src = "http://jira.bltelecoms.net:8080/s/en_UScyxsyn/664/8/1.0.23-beta/_/download/batch/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector.js?collectorId=e125274b";
  document.body.appendChild(s);
}

onclick="loadScript();"

【讨论】:

  • 怎么样?因为无论我做什么都无法通过按钮执行此 .js 文件?
  • 很好,但是我如何运行此代码var s = document.createElement('script'); s.src = "http://jira.bltelecoms.net:8080/s/en_UScyxsyn/664/8/1.0.23-beta/_/download/batch/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector.js?collectorId=e125274b"; document.body.appendChild(s); 以从 html 按钮运行?
  • 在您的页面上的
  • 等一下,让我检查一下
  • 好的,谢谢,你的代码很完美,问题在于http://jira.bltelecoms.net:8080/s/en_UScyxsyn/664/8/1.0.23-beta/_/download/batc‌​h/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector/‌​com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector.js‌​?collectorId=e125274b js文件,所以在这个js文件中,代码仍然告诉它在页面一侧呈现触发器,我希望通过直接从按钮运行 js 文件,它会呈现表单,就好像我们点击了插件生成的触发按钮一样?
【解决方案2】:

我知道这是一个老话题,但请看以下链接:

https://confluence.atlassian.com/display/JIRA/Advanced+Use+of+the+JIRA+Issue+Collector#AdvancedUseoftheJIRAIssueCollector-Addingthecustomtriggerfunctionmanually

这显示了如何为 JIRA 问题收集器设置自定义触发器。您将需要一个函数来扩展全局对象 ATL_JQ_PAGE_PROPS,如下所示(jquery 必须可用)。

    window.ATL_JQ_PAGE_PROPS = $.extend(window.ATL_JQ_PAGE_PROPS, {


    // ==== custom trigger function ====
    triggerFunction : function( showCollectorDialog ) {
        $('#feedback-button').on( 'click', function(e) {
            e.preventDefault();
            showCollectorDialog();
        });

        // add any other custom triggers for the issue collector here
    }

});

所以点击一个带有 id="feedback-button" 的 DOM 元素(或者你想给它的任何其他 id)将触发你的问题收集器脚本。

请记住,问题收集器需要指定“自定义”触发器。您可以通过在 JIRA 中对其进行编辑来做到这一点。

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-11
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-23
    • 1970-01-01
    相关资源
    最近更新 更多