我需要创建一个简单的静态 Web 部件 - 唯一的动态部件是当前用户登录名(需要包含在链接的 URL 参数中)。
我宁愿只使用内容编辑器 Web 部件,而不是我需要部署的自定义 Web 部件。事实上,我已经使用 JavaScript 和 ActiveX 做到了这一点(WScript.Shell
- 下面的完整代码)
有没有更好、更本土的方式来做到这一点?我不喜欢 ActiveX 方法的地方在于它需要对 IE 进行更自由的配置,即使我在安全设置中启用了与 ActiveX 相关的所有内容,仍然需要单击提示。跨浏览器支持不是主要问题,它是 Intranet - 但也将是一个不错的附加功能。
我能想到的一种方法是使用 jQuery(或只是 JavaScript)从右上角刮取用户名,但有什么更干净的吗?或者也许有人已经完成了抓取并可以分享代码以节省我一些时间;-)
这是我目前的解决方案:
<script language="javascript">
function GetUserName()
{
var wshell = new ActiveXObject("WScript.Shell");
var username = wshell.ExpandEnvironmentStrings("%USERNAME%");
var link = document.getElementById('linkId');
link.href = link.href + username.toUpperCase();
}
</script>
<P align=center>
<a id="linkId" onclick="GetUserName();" href="<my_target_URL>?UserID=">open username-based URL</a>
</P>