ما هو أنظف وأقصر جافا سكريبت لإرسال عنوان URL الذي يستخدمه المستخدم لعملية أخرى عبر عنوان URL؟

StackOverflow https://stackoverflow.com/questions/54426

  •  09-06-2019
  •  | 
  •  

سؤال

مثل الإشارة المرجعية Delicious Submit، أرغب في الحصول على بعض جافا سكريبت القياسية التي يمكنني استخدامها لإرسال أي عنوان URL تمت زيارته إلى موقع طرف ثالث عندما يكون ذلك ممكنًا عن طريق عنوان URL.اقتراحات؟

على سبيل المثال، لقد تم استخدام

javascript:void(location.href="http://www.yacktrack.com/home?query="+encodeURI(location.href)) 

حتى الآن ولكن أتساءل عما إذا كان هناك شيء أكثر تعقيدًا يمكنني استخدامه أو ممارسة أفضل.

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

المحلول

هل تريد شيئًا يشبه التطبيق المرجعي Delicious تمامًا (كما هو الحال في شيء ينقر عليه المستخدم بشكل نشط لإرسال عنوان URL)؟إذا كان الأمر كذلك، فربما يمكنك فقط نسخ الكود الخاص بهم واستبدال عنوان URL المستهدف:

javascript:(function(){
    location.href='http://example.com/your-script.php?url='+
    encodeURIComponent(window.location.href)+
    '&title='+encodeURIComponent(document.title)
})()

قد تحتاج إلى تغيير أسماء سلسلة الاستعلام، وما إلى ذلك، لتتناسب مع ما يتوقعه البرنامج النصي الخاص بك.

إذا كنت تريد تتبع مستخدم عبر موقع الويب الخاص بك تلقائيًا، فمن المحتمل ألا يكون هذا ممكنًا.ستحتاج إلى طلب عنوان URL باستخدام AJAX، لكن متصفح الويب لن يسمح لـ Javascript بتقديم طلب خارج النطاق الأصلي.ربما من الممكن مع iframe الخداع.

يحرر: لقد سبقني جون لذلك.

نصائح أخرى

document.location = "http://url_submitting_to.com?query_string_param=" + window.location;

سيكون الخيار الآخر هو شيء مثل هذا:

<form action="http://www.yacktrack.com/home" method="get" name="f">
  <input type="hidden" name="query" />
</form>

ثم سيكون جافا سكريبت الخاص بك:

f.query.value=location.href; f.submit();

أو يمكنك دمج [حفظ الرابط] مع الإرسال كما يلي:

<form action="http://www.yacktrack.com/home" method="get" name="f" onsubmit="f.query.value=location.href;">
  <input type="hidden" name="query" />
  <input type="submit" name="Save Link" />
</form>

وإذا كنت تقوم بتشغيل تعليمات برمجية من جانب الخادم، فيمكنك توصيل الموقع حتى تكون خاليًا من JavaScript:

<form action="http://www.yacktrack.com/home" method="get" name="f">
  <input type="hidden" name="query" value="<%=Response.Url%>" />
  <input type="submit" name="Save Link" />
</form>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top