سؤال

وأنا أحاول أن تصل إلى ملف يحتوي على الرمز (#) في طريق مكالمة window.open (). الملف موجود ويمكن ربط ما يرام باستخدام علامة مرساة العادية.

ولقد حاولت الهروب من الرمز (#) مع '٪ 23' ولكن عندما window.open (myurl) يحصل على معالجتها، ويصبح '٪ 23' '٪ 2523. هذا يقول لي ان سلسلة رابط بلدي يجري escapped بواسطة استدعاء window.open تغيير '٪' إلى '٪ 25'.

هل هناك طرق للتغلب على هذه هروب إضافية.

ونموذج التعليمات البرمجية:

<script language="javascript">
function escapePound(url)
{
   // original attempt
   newUrl = url.replace("#", "%23");
   // first answer attempt - doesn't work
   // newUrl = url.replace("#", "\\#");

   return newUrl;
 }
</script>
<a href="#top" onclick="url = '\\\\MyUNCPath\\PropertyRushRefi-Add#1-ABCDEF.RTF'; window.open(escapePound(url)); return true;">Some Doc</a>

وURL أن يصرخ ويقول "ملف: //MyUNCPath/PropertyRushRefi-Add٪25231-ABCDEF.RTF" لا يمكن العثور

هل كانت مفيدة؟

المحلول

وأنت تسعى magicks المظلمة من encodeURI :

window.open("http://your-url.com/" + encodeURIComponent("foo#123.jpg"));

نصائح أخرى

هل حاول استخدام النص القياسي هروب حرف "\"؟

\#

هل حاولت ترميز URL عبر تفعيل جافا كما فعلت هنا و <أ href ل = "http://www.albionresearch.com/misc/urlencode.php" يختلط = "نوفولو noreferrer"> هنا ؟

هل حاولت أن لا مفر من رابط؟

<a href="#top onclick="url = '\\\\MyUNCPath\\PropertyRushRefi-Add#1-ABCDEF.RTF'; window.open(url); return true;">Some Doc</a>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top