PDA

View Full Version : لود شدن اسکریپت گوگل پلاس بعد از لود کامل سایت



jsa_flora
جمعه 02 تیر 1391, 00:33 صبح
سلام دوستان،
فکر کردم بین موضوعات php ، javascript و طراحی وب قسمت طراحی وب مرتبط تر باشه با سوالم! انشالا که درست انتخاب کردم:لبخندساده:
کد گوگل پلاسی داریم که قسمت دردسر سازش اینه:
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"> {lang: 'fa', parsetags: 'explicit'} </script>

که خوب همه می دونن چرا دردسرساز!!:ناراحت:
اینو تو پایین ترین قسمت یه قالب قرار دادم، اما یه اسکریپت دیگه هم هست که واسه خود قالبه (مربوط میشه به یه قسمت از منوهای بالای سایت) و ظاهرا جوری تنظیم شده که بعد از لود کامل سایت، لود بشه ؛ داخل فایل با پسوند js اون که در سربرگ لود میشه کد زیر هم وجود داره:

$(hash).load(url, function() {
حالا آیا راهی هست که من این اسکریپت گوگل پلاس رو تغییر بدم جوری که حتی بعد از اون اسکریپت لود بشه؟:متفکر:
با تشکر

jsa_flora
یک شنبه 04 تیر 1391, 01:57 صبح
نه که بخوام اسپم بفرستم
ولی خوب محض اطلاع دوستان
همچنان منتظریــــــــــــــم:لبخ دساده:

jsa_flora
یک شنبه 04 تیر 1391, 02:11 صبح
دوستان سوالمو یه جور دیگه می پرسم، اگه جواب اینو هم کسی بدونه واقعا کمک می کنه
به جای تعیین ترتیب لود شدن قسمتهای قالب(سوال اصلی) آیا کدی هست که بشه باهاش آدرس https://apis.google.com/js/plusone.js رو چک کرد که اگه برای مرورگر در دسترس هست اسکریپت گوگل پلاس رو لود کنه، و یه زمانی هم تعیین بشه واسش، که بعد از اون timeout بشه و دیگه اونو مجددا لود نکنه

eAmin
دوشنبه 05 تیر 1391, 19:25 عصر
حالا آیا راهی هست که من این اسکریپت گوگل پلاس رو تغییر بدم جوری که حتی بعد از اون اسکریپت لود بشه؟
وقتی آخر از همه این اسکریپت رو قرار میدید، چه اتفاقی می افته؟ یعنی منظور شما اینه که حتی با اینکار هم آخر از همه لود نمیشه؟
از این کد برای لود کردن اسکریپت استفاده کنید:

window.onload = function() {
document.write('<script type="text/javascript" src="https://apis.google.com/js/plusone.js"> {lang: \'fa\', parsetags: \'explicit\'} <\/script>');
}


به جای تعیین ترتیب لود شدن قسمتهای قالب(سوال اصلی) آیا کدی هست که بشه باهاش آدرس https://apis.google.com/js/plusone.js رو چک کرد که اگه برای مرورگر در دسترس هست اسکریپت گوگل پلاس رو لود کنه، و یه زمانی هم تعیین بشه واسش، که بعد از اون timeout بشه و دیگه اونو مجددا لود نکنه

امکانش هست، ولی دردسر زیادی داره اگر بخواید خودتون به تنهایی بنویسید.
درکل اگر تعداد اسکریپتهاتون زیاد هست و می خواید ترتیب لود شدن و باقی موارد در مورد فایلهای خارجی JavaScript رو تحت نظر داشته باشید استفاده از کتابخانه هایی مثل yepnope, requirejs, labjs و ... استفاده کنید.

jsa_flora
سه شنبه 06 تیر 1391, 19:31 عصر
از این کد برای لود کردن اسکریپت استفاده کنید:

window.onload = function() {
document.write('<script type="text/javascript" src="https://apis.google.com/js/plusone.js"> {lang: \'fa\', parsetags: \'explicit\'} <\/script>');
}
آقا ممنون که بالاخره شما ایثار کردینو جواب دادین:قلب:
این کد همون مشکلی رو داره که بقیه کدهای توی نت داشت اما برخلاف بقیه ظاهرا این یکی کار می کنه واسه این ظاهرا چون دقیقا الان سرویس گوگل پلاس در دسترس نیس واسه من:افسرده: اما آدرس مورد نظر بعد از لود کامل سایت فراخوانی میشه!
اما مشکل چیه؟
این کد رو گذاشتم قبل از آخرین body
اگه همین جوری که شما نوشتین اونو قرار بدم این خط بالای صفحه سایت کنار هدر نشون داده میشه:

window.onload = function() { document.write('
گذاشتن اون داخل تگ php رو هم تست کردم که متاسفانه خطای php میده و اصلا صفحه سایت لود نمیشه:افسرده:
ممنون از راهنماییتون:لبخندساده:
و البته منتظر راهنمایی بعدی

امید امرایی
سه شنبه 06 تیر 1391, 21:18 عصر
سلام دوست عزیز،

من دقیقا متوجه سوال نشدم
اما اگه می خوایید بعد از لود شدن یه اسکریپت کاری انجام بدید می تونید از رویداد Onload اون اسکریپت استفاده کنید.

eAmin
سه شنبه 06 تیر 1391, 22:45 عصر
شما اگر می خوایید این اسکریپت بعد از همه لود بشه اگر این کد رو جایی که body رو می بندید قرار بدید، همه چیز درست میشه:


<script>
(function() {
var script = document.createElement('script');
script.type = 'text/javascript';
script[ (!script.async) ? "defer" : "async"] = true;
script.src = "https://apis.google.com/js/plusone.js";
script.text = "{lang: 'fa', parsetags: 'explicit'}";
document.getElementsByTagName('head')[0].appendChild(script);
})();
</script>

اما اگر می خواید این اسکریپت دقیقا بعد از اسکریپت خاصی لود بشه این جواب شماست:

اما اگه می خوایید بعد از لود شدن یه اسکریپت کاری انجام بدید می تونید از رویداد Onload اون اسکریپت استفاده کنید.
و همچنین در مرورگرهای قدیمی مثل IE6-7 بجای onload از رویداد onreadystatechange استفاده کنید.

jsa_flora
چهارشنبه 07 تیر 1391, 01:00 صبح
شما اگر می خوایید این اسکریپت بعد از همه لود بشه اگر این کد رو جایی که body رو می بندید قرار بدید، همه چیز درست میشه:


<script>
(function() {
var script = document.createElement('script');
script.type = 'text/javascript';
script[ (!script.async) ? "defer" : "async"] = true;
script.src = "https://apis.google.com/js/plusone.js";
script.text = "{lang: 'fa', parsetags: 'explicit'}";
document.getElementsByTagName('head')[0].appendChild(script);
})();
</script>


آقا یه دنیا پلاس...:بوس:
انشالا خدا یه پلاس در دنیا 100 پلاس در آخرت بهت بده که بعد از تست کردن 1000تا کد مارو به جواب رسوندی
kassit (http://barnamenevis.org/member.php?56730-kassit) از شمام واقعا ممنون ولی خوب من دقیقا کد امین مد نظرم بود
مرسی:لبخندساده:

jsa_flora
دوشنبه 12 تیر 1391, 10:05 صبح
دوستان بازم سلام
باز یه اسکریپت دیگه پیدا کردم که واسه قالب مشکل سازه! سعی کردم با استفاده از الگوی همون کد جدید اسکریپت گوگل پلاس تغییرش بدم ولی انگار نشد:افسرده:
مممنون میشم دوستان در این مورد هم یه کمکی برسونن:لبخند:
کد آمارگیر histats :

<!-- Histats.com START (hidden counter)-->
<script type="text/javascript">document.write(unescape("%3Cscript src=%27http://s10.histats.com/js15.js%27 type=%27text/javascript%27%3E%3C/script%3E"));</script>
<a rel="nofollow" href="http://www.histats.com" target="_blank" title="web counters" ><script type="text/javascript" >
try {Histats.start(1,1382523,4,0,0,0,"");
Histats.track_hits();} catch(err){};
</script></a>
<noscript><a rel="nofollow" href="http://www.histats.com" target="_blank"><img src="http://sstatic1.histats.com/0.gif?1382523&101" alt="web counters" border="0"></a></noscript>
<!-- Histats.com END -->
متاسفانه خط دوم کد رو هر کاری کردم داخل صفحه جا نشد، اونو اینجا قرار می دم جدا که مشکلی نباشه:

<script type="text/javascript">document.write(unescape("%3Cscript
src=%27http://s10.histats.com/js15.js%27 type=%27text/javascript%27%3E%3C/script%3E"));</script>

اجرتون با صاحب کد:لبخندساده: