پرش به محتوا

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

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


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


                 const links = doc.querySelectorAll('a[href]');
                 const links = doc.querySelectorAll('a[href*="pediabible.com"], a[href^="/"]');
                 links.forEach(link => {
                 links.forEach(link => {
                     const href = link.getAttribute('href');
                     if (link.dataset.renderHandled) return; // جلوگیری از دوباره‌اتصال
                    if (!href) return;
                    link.dataset.renderHandled = "true";
 
                    link.addEventListener('click', function(e) {
                        e.preventDefault();
                        let href = link.getAttribute('href');
                        if (!href) return;
 
                        try {
                            const url = new URL(href, window.location.origin);
                            let title = url.searchParams.get('title');
 
                            if (!title) {
                                const path = url.pathname;
                                if (path.includes('/index.php/')) {
                                    title = decodeURIComponent(path.split('/index.php/')[1]);
                                } else if (path.startsWith('/')) {
                                    const parts = path.split('/').filter(p => p);
                                    if (parts.length > 0) title = decodeURIComponent(parts[parts.length - 1]);
                                }
                            }


                    if (href.includes('pediabible.com') || href.startsWith('/')) {
                            if (title) {
                        // جلوگیری از بازکردن در iframe — بلکه در تب جدید
                                const renderUrl = `${window.location.origin}/index.php?title=${encodeURIComponent(title)}&action=render`;
                        link.target = '_blank';
                                iframe.src = renderUrl;
                        link.rel = 'noopener noreferrer';
                                document.getElementById('chapter-title').textContent = `مطلب: ${decodeURIComponent(title)}`;
                    } else if (!href.startsWith('#') && !href.startsWith('javascript:')) {
                            }
                        link.target = '_blank';
                        } catch (err) {
                         link.rel = 'noopener noreferrer';
                            console.warn('خطا در پردازش لینک:', err);
                     }
                         }
                     });
                 });
                 });
             } catch (err) {
             } catch (err) {
                // اگر دسترسی نبود، لینک‌ها را دست نزن — اما iframe خالی نماند
                 console.debug('عدم دسترسی به iframe:', err.message);
                 console.debug('دسترسی به iframe محدود شد — لینک‌ها در تب جدید باز می‌شوند.');
             }
             }
         }
         }
خط ۶۶۳: خط ۶۷۹:
                  
                  
                 const pageTitle = translations[currentTranslation].getPageTitle(bookDisplayName, currentChapter);
                 const pageTitle = translations[currentTranslation].getPageTitle(bookDisplayName, currentChapter);
                // ✅ بدون &action=render — چون ممکن است باعث خالی ماندن iframe شود
                 const contentUrl = `${translations[currentTranslation].baseUrl}${encodeURIComponent(pageTitle)}&action=render`;
                 const contentUrl = `${translations[currentTranslation].baseUrl}${encodeURIComponent(pageTitle)}`;
                  
                  
                 versesContainer.innerHTML = `
                 versesContainer.innerHTML = `
خط ۶۷۷: خط ۶۹۲:
                 `;
                 `;
                  
                  
                 wikiPageLink.href = contentUrl;
                 wikiPageLink.href = `${translations[currentTranslation].baseUrl}${encodeURIComponent(pageTitle)}`;
                 wikiPageLink.style.display = 'flex';
                 wikiPageLink.style.display = 'flex';
                 updateNavigationButtons();
                 updateNavigationButtons();


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

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

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

کتاب مقدس

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