اختيار لفتح الروابط في صفحة مستقلة

16‏/12‏/2010







السلام عليكم 



كلنا نعلم أن الروابط الخارجية تمنع من الحفاظ على الزوار وابقائهم في المدونة 

لأطول فترة ممكنة،،وقد نفقد الكثير من الزوار. 

خاصة من يستخدمون الروابط في الـ anchor text أو الاعلانات بأنواعها 
 
وقد تكون موجودة حتى في تعليقات الزوار، 

وهذا كله قد يساهم في خروج الزائر من المدونة.

هذه المشكلة عولجت  في مدونات الووردبريس باستخدام اضافة
  
Open in New Window Plugin .

أما بالنسبة لبلوجر فهناك عدة طرق منها عن طريق تقنية الجيوكري

 



<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

<script type="text/javascript">

//<![CDATA[

jQuery('a').each(function() {

// Let's make external links open in a new window.

var href = jQuery(this).attr('href');

if (typeof href != 'undefined' && href != "" && (href.indexOf('http://') != -1 || href.indexOf('https://') != -1) && href.indexOf(window.location.hostname) == -1) {

jQuery(this).attr("target", "_blank");

}

});

//]]>

</script>




لكن احيانا نجد ان الزوار قد ينزعجون من هته الطريقة

لدالك لجانا الى بحث عن دالة لوضع اختيار للزائر
 
مادا اذا كان يريد فتح هته الروابط  الخارجية في صفحة مستقلة






يكفي فقط الانتقال الى تصميم من لوحة التحكم ثم الى اضافة أداة جديدة Html

و انسخ الكود التالي





<div class="linkprefs">

<p style="border:1px solid #cccccc;font-family:Arial,helvetica,sans-serif;font-size:12px;padding-bottom:4px;padding-top:4px;background:#f4f4f4;display: block;"><input id="linkprefs" value="linkprefs" name="linkprefs" onclick="setCheckbox(document.getElementById('linkprefs').checked);" type="checkbox" />

<label for="linkprefs">لفتح الروابط في صفحة مستقلة</label></p><span></span>

<script type="text/javascript">addEvent(window, 'load',loadLinkPrefs);</script>

</div>

<script language="JavaScript" type="text/javascript">

<!--

/*

Link Target Preferences v.1.1

http://www.noscope.com/journal/2004/10/link-target-preferences

*/



// BEGIN Configuration

// The following URLs are considered "on-site", and will be ignored

// Consider adding both your main URL and the no-ww URL

var url_1 = "http://www.example.com";

var url_2 = "http://example.com";



// Default link-target preference. What should be default for new users?

// Value true opens in _blank by default, false opens in _top by default

var open_blank_default = false;



// Website title - used only for cookie name to prevent cookie conflicts with other sites using this

// No spaces, no special characters, just a unique name

var site_title = "example";

// END Configuration



// Cookie Functions

function createCookie(name,value,days) {

if (days) {

var date = new Date();

date.setTime(date.getTime()+(days*24*60*60*1000));

var expires = "; expires="+date.toGMTString();

}

else var expires = "";

document.cookie = name+"="+value+expires+"; path=/";

}

function readCookie(name) {

var nameEQ = name + "=";

var ca = document.cookie.split(';');

for(var i=0;i < ca.length;i++) {

var c = ca[i];

while (c.charAt(0)==' ') c = c.substring(1,c.length);

if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);

}

return null;

}

function eraseCookie(name) {

createCookie(name,"",-1);

}

// Checkbox Loader

function loadLinkPrefs () {

if (readCookie(site_title+"_linkprefs_cookie")) {

initVal = readCookie(site_title+"_linkprefs_cookie"); // Load cookied preference

} else {

createCookie(site_title+"_linkprefs_cookie", true, 20000)

initVal = open_blank_default; // If no cookie is set

}

openBlank = initVal;

setCheckbox(eval(initVal))

}

// Set Checkbox State

function setCheckbox(state) {

openBlank = state;

document.getElementById('linkprefs').checked = state;

setTargets();

createCookie(site_title+"_linkprefs_cookie", state, 20000)

}

// Configure Link Targets

function setTargets() {

var link, l = 0;

if (openBlank == true) {

while (link = document.links[l++]) {

// Open in _blank, except all links starting with...

if (link.href.indexOf(url_1) == -1 && link.href.indexOf(url_2) == -1 && link.href.indexOf('javascript') == -1) link.target = '_blank';

}

} else {

while (link = document.links[l++]) {

// Open in _top, except all links starting with...

if (link.href.indexOf(url_1) == -1 && link.href.indexOf(url_2) == -1 && link.href.indexOf('javascript') == -1) link.target = '_top';

}

}

}

// Event Listener, by Scott Andrew

function addEvent(obj, evType, fn) {

if (obj.addEventListener) {

obj.addEventListener(evType, fn, true);

return true;

} else if (obj.attachEvent) {

var r = obj.attachEvent('on'+evType, fn);

return r;

} else {

return false;

}

}

//-->

</script>




هذه الطريقة ليست مقتصرة فقط على المدونات

وإنما يمكن تطبيقها أيضا على كل المواقع بمختلف أنواعها.



ملاحظة : الدالة ليست من برمجتي كما انصح بفهم محتواها جيدا.


مصدر الدالة


و السلام خير ختام.