پرش به محتوا

کتاب مقدس آنلاین: تفاوت میان نسخه‌ها

از دانشنامه کتاب مقدس
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
خط ۴۸۳: خط ۴۸۳:
         };
         };


         // ✅ تابع جدید: بازنویسی لینک‌های داخلی در iframe
         // ✅ تابع ایمن برای بازنویسی لینک‌ها — فقط اگر iframe موفق به بارگذاری شد
         function interceptInternalLinks(iframe) {
         function interceptInternalLinksSafely(iframe) {
            // فقط اگر iframe محتوایی داشت، ادامه بده
             try {
             try {
                 const doc = iframe.contentDocument || iframe.contentWindow.document;
                 const doc = iframe.contentDocument || iframe.contentWindow.document;
                 if (!doc) return;
                 if (!doc || !doc.body || doc.body.innerHTML.trim() === '') {
                    return; // اگر خالی بود، کاری نکن
                }


                 const links = doc.querySelectorAll('a[href]');
                 const links = doc.querySelectorAll('a[href]');
خط ۴۹۴: خط ۴۹۷:
                     if (!href) return;
                     if (!href) return;


                    // فقط لینک‌های داخلی به pediabible.com را هدف قرار بده
                     if (href.includes('pediabible.com') || href.startsWith('/')) {
                     if (href.includes('pediabible.com') || href.startsWith('/')) {
                         link.addEventListener('click', function(e) {
                         // جلوگیری از بازکردن در iframe — بلکه در تب جدید
                            e.preventDefault();
                        link.target = '_blank';
                            let url;
                        link.rel = 'noopener noreferrer';
                            try {
                     } else if (!href.startsWith('#') && !href.startsWith('javascript:')) {
                                url = href.startsWith('http') ? new URL(href) : new URL(href, window.location.origin);
                            } catch {
                                return;
                            }
 
                            let title = url.searchParams.get('title');
                            if (!title) {
                                const path = url.pathname;
                                if (path.includes('/index.php/')) {
                                    title = path.split('/index.php/')[1];
                                } else if (path.startsWith('/')) {
                                    const parts = path.split('/').filter(p => p);
                                    if (parts.length > 0) title = parts[parts.length - 1];
                                }
                            }
 
                            if (title) {
                                const renderUrl = `${window.location.origin}/index.php?title=${encodeURIComponent(title)}&action=render`;
                                iframe.src = renderUrl;
                                document.getElementById('chapter-title').textContent = `مطلب: ${decodeURIComponent(title)}`;
                            }
                        });
                     }
                    // لینک‌های خارجی را در تب جدید باز کن
                    else if (!href.startsWith('#') && !href.startsWith('javascript:')) {
                         link.target = '_blank';
                         link.target = '_blank';
                         link.rel = 'noopener noreferrer';
                         link.rel = 'noopener noreferrer';
خط ۵۳۰: خط ۵۰۷:
                 });
                 });
             } catch (err) {
             } catch (err) {
                 console.debug('دسترسی به iframe محدود شد:', err.message);
                // اگر دسترسی نبود، لینک‌ها را دست نزن — اما iframe خالی نماند
                 console.debug('دسترسی به iframe محدود شد — لینک‌ها در تب جدید باز می‌شوند.');
             }
             }
         }
         }
خط ۶۸۵: خط ۶۶۳:
                  
                  
                 const pageTitle = translations[currentTranslation].getPageTitle(bookDisplayName, currentChapter);
                 const pageTitle = translations[currentTranslation].getPageTitle(bookDisplayName, currentChapter);
                 const contentUrl = `${translations[currentTranslation].baseUrl}${encodeURIComponent(pageTitle)}&action=render`;
                // ✅ بدون &action=render — چون ممکن است باعث خالی ماندن iframe شود
                 const contentUrl = `${translations[currentTranslation].baseUrl}${encodeURIComponent(pageTitle)}`;
                  
                  
                 versesContainer.innerHTML = `
                 versesContainer.innerHTML = `
خط ۶۹۸: خط ۶۷۷:
                 `;
                 `;
                  
                  
                 wikiPageLink.href = `${translations[currentTranslation].baseUrl}${encodeURIComponent(pageTitle)}`;
                 wikiPageLink.href = contentUrl;
                 wikiPageLink.style.display = 'flex';
                 wikiPageLink.style.display = 'flex';
                 updateNavigationButtons();
                 updateNavigationButtons();


                 // ✅ فعال‌سازی لینک‌های هوشمند بعد از بارگذاری iframe
                 // ✅ بعد از بارگذاری، لینک‌ها را ایمن کن
                 const iframe = document.getElementById('content-iframe');
                 const iframe = document.getElementById('content-iframe');
                 iframe.onload = function() {
                 iframe.onload = function() {
                     interceptInternalLinks(iframe);
                     interceptInternalLinksSafely(iframe);
                 };
                 };
             }
             }

نسخهٔ ‏۹ اکتبر ۲۰۲۵، ساعت ۱۹:۵۲

کتاب مقدس - مطالعه آنلاین

کتاب مقدس

مطالعه کتاب مقدس با ترجمه‌های مختلف