2015-09-21 5 views
1

Я создал собственный протокол по имени «myapp» и попытался передать ему аргументы с помощью тега href как <a href="myapp://E:/file.txt">Click here</a>.Проблема при передаче аргумента пользовательскому протоколу через href?

протокол MyApp будет, как описано ниже:

[HKEY_CLASSES_ROOT\myapp] 
@="\"URL:Alert Protocol\"" 
"URL Protocol"="\"\"" 

[HKEY_CLASSES_ROOT\myapp\DefaultIcon] 
@="\"C:\\WINDOWS\\System32\\notepad.exe,1\"" 

[HKEY_CLASSES_ROOT\myapp\shell] 

[HKEY_CLASSES_ROOT\myapp\shell\open] 

[HKEY_CLASSES_ROOT\myapp\shell\open\command] 
@="\"C:\\WINDOWS\\System32\\notepad.exe\" \"%1\"" 

При нажатии на ссылку якорный он выдает ошибку, как «имя файла, имя каталога или метки тома синтаксис неверен.»

Я догадываюсь, что аргумент, прошедший через тег <a href="myapp:E:/file.txt">, не распознается.

Я понятия не имею, как избежать косых черт (/) или любого специального символа здесь.

Пожалуйста, помогите мне с этим или дайте мне знать, если я делаю неправильно.

ответ

0

Вы также должны сделать что-то подобное, чтобы получить параметр. Здесь я получаю адрес URL в качестве параметра мы передаем в MyApp:

var url = document.location.href ; 
var arr = url.split("/"); 
var result = arr[0] + "//" + arr[2] 
var uri='myapp://'+result;` 
0

Проблема в том, что командная строка стала

C: \ WINDOWS \ system32 \ notepad.exe MyApp: E:/file.txt

Я уверен, что вы ожидали, что это будет

C: \ WINDOWS \ system32 \ notepad.exe E: /file.txt