باستخدام .load مسج فواصل روابط لمصادر المكتبة أخرى؟

StackOverflow https://stackoverflow.com/questions/303026

  •  08-07-2019
  •  | 
  •  

سؤال

ولدي صفحة HTML بسيطة مع شعبة. أنا أستخدم مسج لتحميل محتويات التطبيق ASPX في شعبة "المحتوى". كود يبدو مثل هذا:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js">
    </script>
    <script type="text/javascript">
        jQuery.noConflict();
    </script>
</head>
<body>
    <div id="content">
        <div id="loading"> 
            <div class="loading-indicator">Loading...</div>
        </div>
    </div>
</body>
<script type="text/javascript">
    jQuery(document).ready(function() {
        jQuery("#content").load("default.aspx");
    });
</script>
</html>

والمشكلة هي default.aspx يستخدم shadowbox وغيرها من مكتبات جافا سكريبت. عندما يحاول هذا الرمز لتنفيذ على default.aspx أنه يتصرف مثل شبيبة لم تكن تحميل الملفات المصدر. I تحقق في الحرائق والملفات شبيبة وهناك (أي 404 أو أي شيء). أحد يعرف ما أنا في عداد المفقودين؟ كما ترون لقد استخدمت وظيفة مسج noConflict لأنني اعتقدت استخدام $ يمكن أن يتعارض مع المكتبات الأخرى ولكن أي مساعدة هناك ...

هل كانت مفيدة؟

المحلول

هل التعليمات البرمجية التي لا يتم تنفيذ أوامر الصادرة من لبنات النصي، وأنا أفهم المكتبات تحميل ولكن أي كتل البرنامج النصي أو مضمنة جافا سكريبت لن تنفيذه عند تحميلها بشكل حيوي من هذا القبيل. لديك من أجل التوصل إلى حل فيزا التي من شأنها تقييم الكتل النصي عاد لأي من ذلك لتكون صالحة. سوف نرى ما اذا كان يمكنني حفر مثال من النموذج الأولي، وأذكر منهم بعد واحد.

وUPDATE:

وهذا هو مباشرة من النموذج ...

  ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>'

  extractScripts: function() {
    var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
    var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
    return (this.match(matchAll) || []).map(function(scriptTag) {
      return (scriptTag.match(matchOne) || ['', ''])[1];
    });
  }

  evalScripts: function() {
    return this.extractScripts().map(function(script) { return eval(script) });
  }

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

نصائح أخرى

ولدي كود القيام بذلك، قد يكون أكثر مطول مما هو مطلوب، ولكن الملفات شبيبة متداخلة لا ينبغي أن يكون مشكلة.

jQuery.get('default.aspx', null, function(data) {
    $('#default').append(data);
}, 'html');

ويبدو أن مشكلة مشتركة: <لأ href = "http://andreineculau.wordpress.com/2006/09/29/ajax-ondemand-javascript-or-dynamic-script-tags/" يختلط = "نوفولو noreferrer "> http://andreineculau.wordpress.com/2006/09/29/ajax-ondemand-javascript-or-dynamic-script-tags/

وانا التخمين انها الأمنية في صلب المتصفحات لمنع حدوث استجابة اياكس من تشغيل البرنامج النصي التعسفي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top