JavaScript用户输入URL不持有我的域
JavaScript userinput URL without holding my domain
我在使用JavaScript时遇到了一点麻烦。我的问题是我有一个用户输入框(用户将在其中输入URL)和一个按钮(当单击时,它将打开用户在输入框中键入的URL)。
下面是我的代码:<input type="text" id="userurlbox"/>
<button type="button" onClick="myFunction()">Open URL</button>
<script>
function myFunction()
{
var x = document.getElementById('userurlbox').value;
if (x == "")
{
alert('Please enter a URL');
}
else
{
window.open(x ,'_blank');
}
</script>
问题是URL是这样打开的:
http://mywebsite.com/USERURL
我希望它像这样打开:
http://USERURL
这段代码只在'http://' '尚未包含时添加它:
function myFunction() {
var x = document.getElementById('userurlbox').value;
if (x == "") {
alert('Please enter a URL');
}
else {
if (x.substr(0,4).toLowerCase() === 'http') { // only test first 4 characters as we want to allow both http:// and https://
window.open(x ,'_blank');
}
else {
window.open('http://'+x);
}
}
}
我刚刚测试了,您需要在window.open
中包含'http://'
<input type="text" id="userurlbox"/>
<button type="button" onClick="myFunction()">Open URL</button>
<script>
function myFunction(){
var x = document.getElementById('userurlbox').value;
x = x.replace('http://'.''); // remove http:// just in-case it is there
if (x == "")
{
alert('Please enter a URL');
}
else
{
window.open('http://' + x ,'_blank');
}
}
</script>
我不确定是否可以使用窗口覆盖相对/绝对url行为。打开函数,所以一个可行的解决方案是检查url是否以https开头?://如果不是,则在前面加上'//'。以//开头的url将始终被视为绝对的。
相关文章:
- 何时可以;我的用户脚本在Javascript中触发右键单击(上下文菜单)
- 我的用户可以通过单击Ajax之外的按钮来访问$_SESSION的内容吗
- Facebook已连接但我的用户是一个空对象
- 为什么我的用户范围的自定义维度会根据过去的匹配而发生变化
- 我怎样才能说服WebStorm我的用户脚本加载jQuery
- 是否有可能/建议解析我的用户输入字符串 w 正则表达式
- 如何将新用户添加到我的用户数据库对象中
- 如何编写脚本以像我的用户一样自动遍历流程
- 从选择菜单中收集我的用户选择以及正确答案
- Firebase应该在我的用户id结构中包含单词“;simplelogin”;
- 未捕获引用错误:<我的用户脚本定义的函数>未定义
- 我的用户脚本没有'我不工作;我不知道为什么(过度使用var关键字)
- 当我的用户收到朋友的未读消息时,我如何切换我的网站标题
- 我如何让javascript在我的用户控件工作的面板内,其可见性是假的页面加载
- 检查我的用户输入的是一组长度的数字
- 有没有任何工具可以自动截图我的用户所在的网页,而她报告错误
- 我如何允许我的用户最好地与提要中的实时xml数据交互
- 如何使我的用户脚本在使用历史记录 API 的网站的特定页面上工作
- 如何允许我的用户在Cognito用户池上重置他们的密码
- 我想添加一个facebook功能,当我的用户失去互联网连接时显示消息