首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用URL通过自定义协议处理程序(Chrome到IE)传递参数

使用URL通过自定义协议处理程序(Chrome到IE)传递参数
EN

Stack Overflow用户
提问于 2018-07-25 14:09:18
回答 1查看 1.7K关注 0票数 1

我遵循这个堆栈溢出线程中的说明,在Windows 7中创建一个自定义协议处理程序,该处理程序将打开Internet中任何前缀为"ie:“的URL。正如自定义协议处理程序在Microsofts员额中解释的那样,如何处理特殊字符存在问题,因此使用URL传递参数存在问题。

链式螺纹中,Saurabh发布了一篇文章,建议使用脚本创建本地html文件,该脚本可以正确地解析URL,然后重定向到这个新更新的URL。我还没把这个弄到手。

什么起作用:

  • 协议处理程序可以从Internet中的外部程序打开自定义URL(即:file:///C:/ieRedirect.html):https://www.google.se)。
  • 使用协议打开的本地文件可以启动包含参数的硬编码URL(参见下面的代码)。

代码语言:javascript
复制
<html>
	<head>
		<title>
			IE Redirect
		</title>
		<script>
			function testOpenURL(){
				window.open('https://www.google.se/search?q=stackoverflow', '_self');
			}
		</script>
	</head>
	<body onload="testOpenURL()">

	</body>
</html>

问题:

  • 有没有一种方法可以让Saurabh的解决方案工作,并通过URL传递一个或多个参数?
  • 是否有另一种方法通过自定义协议处理程序传递参数?

任何建议都是非常感谢的。您可以在下面找到我的reg文件。

代码语言:javascript
复制
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\ie]
"URL Protocol"="\"\""
@="\"URL:IE Protocol\""

[HKEY_CURRENT_USER\Software\Classes\ie\DefaultIcon]
@="\"iexplore.exe,1\""

[HKEY_CURRENT_USER\Software\Classes\ie\shell]

[HKEY_CURRENT_USER\Software\Classes\ie\shell\open]

[HKEY_CURRENT_USER\Software\Classes\ie\shell\open\command]
@="cmd /C set myvar=%1 & call set myvar=%%myvar:ie:=%% & call start /separate iexplore %%myvar%% & exit"

EN

回答 1

Stack Overflow用户

发布于 2021-04-15 11:40:40

修改命令字符串vaue上的协议sufix也失败了,因此我得到了解决此问题的另一种方法:

  • 在服务器(例如http: //<your.domain>/redirect/index.php)上创建如下页面:
代码语言:javascript
复制
<?php
   $url = isset($_GET['url']) ? $_GET['url'] : die('Access denied');
   $url = str_replace('ie', 'http', $url);
   header('Location: ' . $url);
   die();
?>
  • command键值设置为"iexplore.exe" "http://<your.domain>/redirect?url=%1"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51521030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档