Mohammad
2 سال پیش توسط Mohammad مطرح شد
6 پاسخ

ایجاد لینک با جاواسکریپت

سلام یه کدی می خواستم با جاواسکریپت خودم زیاد وارد نیستم
می خوام تمام لینک هایی که داخل div هستند و با http شروع می شوند رو انتخاب کنم تا انتهای اون لینک و با space تموم بشه انتخابش و اون هارو داخل تگ a با تارگت blank قرار بدم
ممنون میشم راهنمایی کنید


ثبت پرسش جدید
علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 2 سال پیش مطرح شد
1

سلام
تازه متوجه شدم. فکر کردم می‌فرمایید تگ‌های لینک رو بهشون تارگت blank بدیم. این مورد هم پیاده‌سازی‌اش سخت نخواهد بود:

<script>
    let messages = document.getElementById('messages')
    messages.innerHTML = messages.innerHTML.replace(/((http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?)/g,'<a href="$1" target="_blank">$1</a>');
</script>

فقط کافیه یه جای messages آیدی اون div مورد نظرتون رو قرار بدید..!


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 2 سال پیش آپدیت شد
1

دقیقا این که رو برای چی میخواید؟
کاش کمی شفاف‌تر توضیح می‌دادید. چیزی که من متوجه شدم از درخواستتون اینه:«تگ‌هایی a که در داخل یک div هستند و با http شروع می‌شوند، انتخاب شوند. و به لینک داخلشون یعنی مثلا <a href="https://roocket.ir">roocket</a> یک اسپیس اضافه بشه. یعنی <a href="https://roocket.ir"> roocket </a> تبدیل بشه به چنین چیزی و بهشون یک اتریبیوت تارگت با مقدار blank بدید»
درسته؟
اگر چیزی که من متوجه شده باشم درسته باید از این کد استفاده بکنید:

const links = document.querySelectorAll('div a')
for(let i=0;i<links.length;i++){
    if(links[i].href[0]+links[i].href[1]+links[i].href[2]+links[i].href[3] == "http"){
        links[i].target = "_blank"
        links[i].innerHTML = links[i].innerHTML + " "
    }
}

موفق باشید


Mohammad
تخصص : 5656565
@Reza.7 2 سال پیش مطرح شد
0

سلام دوست عزیز
این کار رو برای این می خوام که لینک هایی که داخل چت ارسال میشن قابل کلیک باشه
یک چت باکسی دارم برای تیکت پشتیبانی و داخل input پیامشون رو میفرستن و در کنارش ممکنه لینکی بفرستن
و می خوام تمام لینک ها داخل تگ a قرار بگیره و قابل کلیک باشه


Mohammad
تخصص : 5656565
@Reza.7 2 سال پیش آپدیت شد
0

مثلا یک پیامی ارسال شده به این صورت

<div class="messages">
lorem text  https://google.com  other text 
</div>

@mhyeganeh
@milad
@hesammousavi
@

یک کدی می خوام تمام پیام هارا انتخاب کنه چک کنه اگه داخل پیام http بود تا اخر لینک رو انتخاب کنه و داخل تگ a قرار بده


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 2 سال پیش مطرح شد
1

سلام
تازه متوجه شدم. فکر کردم می‌فرمایید تگ‌های لینک رو بهشون تارگت blank بدیم. این مورد هم پیاده‌سازی‌اش سخت نخواهد بود:

<script>
    let messages = document.getElementById('messages')
    messages.innerHTML = messages.innerHTML.replace(/((http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?)/g,'<a href="$1" target="_blank">$1</a>');
</script>

فقط کافیه یه جای messages آیدی اون div مورد نظرتون رو قرار بدید..!


Mohammad
تخصص : 5656565
@Reza.7 2 سال پیش مطرح شد
0

با اینکه کدی که فرستادیو گذاشتم کار نکرد ولی بخاطر زحمتی که کشیدی بهترین پاسخ انتخاب میکنم


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 2 سال پیش مطرح شد
0

@Reza.7
سلام
معلومه نباید این کد رو استفاده کنید ازش
شما باید به جای messages آیدی اون div مد نظرتون رو بدید..!
و اینکه کد رو سر جای درستش بگذارید. یعنی بعد از body


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام