diff --git a/static/src/js/app/oj/problem/problem.js b/static/src/js/app/oj/problem/problem.js index 360569cb..e34daea5 100644 --- a/static/src/js/app/oj/problem/problem.js +++ b/static/src/js/app/oj/problem/problem.js @@ -6,9 +6,26 @@ require(["jquery", "codeMirror", "csrfToken", "bsAlert", "ZeroClipboard"], return; } - // 提供点击复制到剪切板的功能 - ZeroClipboard.config({swfPath: "/static/img/ZeroClipboard.swf"}); - new ZeroClipboard($(".copy-sample")); + // 复制样例需要 Flash 的支持 检测浏览器是否安装了 Flash + function detect_flash() { + var ie_flash; + try { + ie_flash = (window.ActiveXObject && (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) !== false) + } catch (err) { + ie_flash = false; + } + var _flash_installed = ((typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] == "object") || ie_flash); + return _flash_installed; + } + + if(detect_flash()) { + // 提供点击复制到剪切板的功能 + ZeroClipboard.config({swfPath: "/static/img/ZeroClipboard.swf"}); + new ZeroClipboard($(".copy-sample")); + } + else{ + $(".copy-sample").hide(); + } var codeEditor = codeMirror(codeEditorSelector, "text/x-csrc"); var language = $("input[name='language'][checked]").val(); @@ -186,4 +203,4 @@ require(["jquery", "codeMirror", "csrfToken", "bsAlert", "ZeroClipboard"], } } }) - }); + }); \ No newline at end of file